//********************************************************************
// funcs.js
// 
//
// Added functions isInteger() and specialChar() - Derek@2009-08-26
// Added function paging() - Derek@2009-08-12
//********************************************************************


function setCookie(c_name,value,expiredays)
{
	//var exdate=new Date();
	//exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+expiredays);
}

function toggle(id)
{
	if (document.getElementById) { obj = document.getElementById(id); }
	if (document.all) { obj = document.all[id]; }
	if (document.layers) { obj = document.layers[id]; }
	if (obj) {
		if (obj.style.display == "none") {
			obj.style.display = "";
		} else {
			obj.style.display = "none";
		}
	}
	
	var expDays = 365;
	var exp = new Date();
	exp.setTime(exp.getTime() + (expDays*24*60*60*1000)); 

	setCookie("_128128_collaps_" + obj.id , obj.style.display, exp);
	
	return false;
}

var iconClose = new Image();
iconClose.src = 'views/img/close12.gif';
var iconOpen = new Image();
iconOpen.src = 'views/img/open12.gif';

function toggleIcon ( iconName )
{
	if ( document.images[iconName].src == window.iconOpen.src ) {
		document.images[iconName].src = window.iconClose.src;
	} else if ( document.images[iconName].src == window.iconClose.src ) {
		document.images[iconName].src = window.iconOpen.src;
	}
	return;
}

function toggleName ( id )
{
	var show = "顯示";
	var hide = "隱藏";

	if (document.getElementById) { obj = document.getElementById(id); }
	if (document.all) { obj = document.all[id]; }
	if (document.layers) { obj = document.layers[id]; }

	if ( obj.innerHTML == show){
		obj.innerHTML = hide;
	}else if ( obj.innerHTML == hide){
		obj.innerHTML = show;
	}

	return;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2]; }
}

function linkto(url) {
	window.location.href = url;
}

function initClk()
{
	$(document).ready(function(){
	$.ajax({
		url : ("./clk.php?rn="+parseInt(Math.random() * 99999999999)),
		success : function (data) {
		$("#date").html(data);
		}
	});
	setTimeout("initClk()", 1000);
	});
}

			

function switchtab(index,type,imglist) {
	var img = imglist.split(",");
	for (var i=0;i<img.length;i++){
		var id=i+1;
		if (index == id){
			if(document.getElementById(type+"-img-"+id))
				document[type+"-img-"+id].src = document[type+"-img-"+id].src.replace(/(.*-)off(.*)/, "$1on$2");	
			if(document.getElementById(type+"-content-"+id))		
				document.getElementById(type+"-content-"+id).style.display = "block";
		}else{
			if(document.getElementById(type+"-img-"+id))
				document[type+"-img-"+id].src = document[type+"-img-"+id].src.replace(/(.*-)on(.*)/, "$1off$2");
			if(document.getElementById(type+"-content-"+id))		
					document.getElementById(type+"-content-"+id).style.display = "none";
		}
	}
}

function nextSlide(element) 
{
	var curr_slide;
	var next_slide;
	for(var i = 1; i <= 5 ; i++) {
		curr_slide = element+"-"+i;
		next_slide = element+"-"+(i+1);
		if(document.getElementById(curr_slide)) {
			if(document.getElementById(curr_slide).className == 'current'){
				if(document.getElementById(next_slide)) {
					document.getElementById(curr_slide).className = 'hide';
					document.getElementById(next_slide).className = 'current';
				}
				else {
					document.getElementById(curr_slide).className = 'hide';
					document.getElementById(element+"-1").className = 'current';
				}
				break;
			}
		}
		else 
			break;
	}
}

function paging(currentpg, tabperpg, total, effect){
	if(total > tabperpg){
		for(var i = 0; i<total; i++){
			if(range(i, currentpg, tabperpg)){
				$("a.news-img-"+(i+1)).show(effect);
				$("a.news-img-"+(i+1)).parent().addClass('lt');
				$("a.news-img-"+(i+1)).parent().removeClass('hiddenlt');
			}
			else{
				$("a.news-img-"+(i+1)).hide(effect);
				$("a.news-img-"+(i+1)).parent().removeClass('lt');
				$("a.news-img-"+(i+1)).parent().addClass('hiddenlt');
			}
		}
	}
	else
		$("a.next").hide();
}

function range(index, currentpg, tabperpg){
	return (Math.ceil((index+1)/tabperpg)==currentpg);
}
		
function prevSlide(element) {
	var count = 0;
	var index;
	for(var i = 1; i <=5 ; i++){
		if(document.getElementById(element+"-"+i)){
			if(document.getElementById(element+"-"+i).className == 'current'){
				index = i;
			}
			count++;
		}
	}

	if(count > 1)
		if(index == 1) {
			document.getElementById(element+"-"+index).className = 'hide';
			document.getElementById(element+"-"+count).className = 'current';
		}
		else {
			document.getElementById(element+"-"+index).className = 'hide';
			document.getElementById(element+"-"+(index-1)).className = 'current';
		}
}

function rollingStock(id, h)
{
	function $(element) {
		if(arguments.length > 1) {
			for(var i = 0,length = arguments.length,elements = []; i < length; i++) {
				elements.push($(arguments[i]));
			}
			return elements;
		}
		if(typeof element=="string")
			return document.getElementById(element);
		else
			return element;
	}

	var Class = {
		create:function(){
			return function(){
				this.initialize.apply(this,arguments);
			}
		}
	}

	Function.prototype.bind=function(object){
		var method=this;
		return function() {
			method.apply(object,arguments);
		}
	}

	var Scroll=Class.create();
	Scroll.prototype = 	{
		initialize:function(element,height)	{
			this.element = $(element);
			this.element.innerHTML += this.element.innerHTML;
			this.height = height;
			this.maxHeight = this.element.scrollHeight / 2;
			this.counter = 0;
			this.scroll();
			this.timer = "";
			this.element.onmouseover = this.stop.bind(this);
			this.element.onmouseout = function(){
				this.timer = setTimeout(this.scroll.bind(this),1300);
			}.bind(this);
		},
		scroll:function() {
			if(this.element.scrollTop<this.maxHeight) {
				this.element.scrollTop++;
				this.counter++;
			} 
			else {
				this.element.scrollTop=0;
				this.counter=0;
			}
	  
			if(this.counter<this.height) {
				this.timer=setTimeout(this.scroll.bind(this),22);
			} 
			else {
				this.counter=0;
				this.timer=setTimeout(this.scroll.bind(this),3126);
			}
		},
		stop:function() {
			clearTimeout(this.timer);
		}
	}
	var myscroll=new Scroll(id,h);
}

//validate an integer
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

//validate if the string contains special characters
function specialChar(str){
	var iChars = "!@#$%^&*()+=-[]\\\';,/{}|\":<>?";
	  for (var i = 0; i < str.length; i++) {
		if (iChars.indexOf(str.charAt(i)) != -1)
		return true;
	  }
}

