/* name: common.js
 * features: common functions
 * author: jena want
 * date: 2008-8-25 10:21:09
 */
var PAGESIZE = 30;
do_SetInputError = function(id, msg){
	if(!id) return;
	Element.setStyle(id,{'borderColor':'#FF3333','background':'#F7DFE4'});
	if(msg){
		$(id).title = msg;
		if($('x-field-info-'+id)){
			Element.update($('x-field-info-'+id),msg).addClassName('ErrorMsg');
		}
	}
	
	$(id).onkeypress = function(){
		Element.setStyle(id,{'borderColor':'#CCCCCC','background':'#FFFFFF'});
		if(msg){
			$(id).title = '';
			if($('x-field-info-'+id)){
				Element.update($('x-field-info-'+id),'').removeClassName('ErrorMsg');
			}
		}
	};
	$(id).onclick = function(){
		Element.setStyle(id,{'borderColor':'#CCCCCC','background':'#FFFFFF'});
		if(msg){
			$(id).title = '';
			if($('x-field-info-'+id)){
				Element.update($('x-field-info-'+id),'').removeClassName('ErrorMsg');
			}
		}
	};
};
do_CheckByteLength = function(str,minlen,maxlen) {
	if (str == null) return false;
	var l = str.length;
	var blen = 0;
	for(i=0; i<l; i++) {
		if ((str.charCodeAt(i) & 0xff00) != 0) {
			blen ++;
		}
		blen ++;
	}
	if (blen > maxlen || blen < minlen) {
		return false;
	}
	return true;
};
do_CheckURL = function(url){
	if(!url) return false;
	var patn = new RegExp("^http:\/\/"); 
	if(!patn.test(url)) return false;
	return true;
};
do_WriteCookie = function(name,value,days){
    var Days = days || 365;
    var exp  = new Date();    //new Date("December 31, 9998");
        exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
};
do_ReadCookie = function(name){
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
	if(arr=document.cookie.match(reg)) return unescape(arr[2]);
	else return null;
};
do_ClearCookie = function(name){
    var exp = new Date();
        exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
	if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
};
do_CheckKeyPress = function(evt){
	var evt = window.event||evt;
	var code = evt.keyCode||evt.which;
	if((code < 46 || (code > 46 && code < 48) || code >57) && code != 8){
		return false;
	}
};
do_CheckKeyUp =  function(evt){
	var evt = window.event||evt;
	var obj = evt.srcElement || evt.target;
	if(obj.value){
		var flag = /^[\+\-]?\d*?\.?\d*?$/.test(obj.value);
		if(!flag) obj.value = '0';
	}
};

getPage = function(url, callback, param){
	do_CheckAdmin();
	Element.update('x-div-center-container', '<div style="padding:30%; text-align:center;"><img src="/images/icons/extanim32.gif" ></div>');
	new Ajax.Updater('x-div-center-container',url,{
		method:'get',
		parameters:{t:'t'},
		onComplete:function(){
			if(typeof callback == 'function'){
				if(param){
					callback(param);
				}else{
					callback();
				}
				//resizewindow();
			}
		},
		onFailure:function(){
			
		}
	})													   
};
do_CheckAdmin = function(){
	new Ajax.Request('../handler/admin-check.php',{
		onSuccess:function(trans){
			var data =  trans.responseJSON;
			if(data.success == 'fase'){
				window.location.href =  data.url;
			}
		}
	});
	return;
};
do_Logout = function(){
	new Ajax.Request('../handler/admin-logout.php',{
		onSuccess:function(trans){
			var data =  trans.responseJSON;
			if(data.success == 'true'){
				window.location.href =  data.url;
			}
		}
	});
};
do_PageBar = function(page, total, perside, limit, callback){
	var pagebar = '';
	page = parseInt(page), total = parseInt(total), perside = parseInt(perside);
	if(total == 0 || total == 1){
		pagebar='<div class="pagebar">Page: <span class="this-page">'+ page +'</span></div>';
		return pagebar;
	}
	aps = perside || 2;
	if(page < 1) page = 1;
	if(page > total) page = total;
	
	getfun = function(p){
		return callback.replace('[','(').replace(']',')').replace('##',p);
	};
	
	var preurl = ''; //分页字符串前缀
	if(page > 1){
		preurl = '<a href="javascript:void(0);" onclick="javascript:'+ getfun((page-1-1)*limit) +';"  title="Page '+ ((page-1-1)*limit) +'">&#9668;</a> <a href="javascript:void(0);" onclick="javascript:'+ getfun((1-1)*limit) +';"" title="Page 1">1</a> ';
	}else{
		preurl = '<span class="this-page">1</span> ';
	}
	
	var nexturl = ''; //分页字符串后缀
	if(page < total){
		nexturl = '<a href="javascript:void(0);" onclick="javascript:'+ getfun((total-1)*limit) +';" title="Page '+ total +'">'+ total +'</a> <a href="javascript:void(0);" onclick="javascript:'+ getfun((page+1-1)*limit) +';" title="Page '+ ((page+1-1)*limit) +'">&#9658;</a> ';
	}else{
		nexturl = '<span class="this-page">'+ total +'</span> ';
	}

	var midurl = ''; //分页字符串中心
	for(var i=page-aps;i<=page+aps;i++){
		if(i>1 && i<total){
			if(i == page){
				midurl += '<span class="this-page">'+ i +'</span> ';
			}else{
				if(i == page-aps){
					midurl += '<span class="break">...</span> <a href="javascript:void(0);" onclick="javascript:'+ getfun((i-1)*limit) +';" title="Page '+ i +'">'+ i +'</a> ';
				}else if(i == page+aps){
					midurl += '<a href="javascript:void(0);" onclick="javascript:'+ getfun((i-1)*limit) +';" title="Page '+ i +'">'+ i +'</a> <span class="break">...</span> ';
				}else{
					midurl += '<a href="javascript:void(0);" onclick="javascript:'+ getfun((i-1)*limit) +';" title="Page '+ i +'">'+ i +'</a> ';
				}
			}
		}
	}
	
	pagebar = '<div class="pagebar">Page: ' + preurl + midurl + nexturl + '</div>';
	return pagebar;
};

/*==move options*/
do_SelectAllOptions = function(obj,w) {
	obj = $(obj);
	var iMaxCounter = obj.options.length;
	for (var i=0; i<iMaxCounter; i++) {
		obj.options[i].selected = true;
	}
};

do_MoveSelectedOptions = function(from,to) {
	from_ = $(from),to_ = $(to)
	if (arguments.length>3) {
		var regex = arguments[3];
		if (regex != "") {
			unSelectMatchingOptions(from_,regex);
		}
	}
	for (var i=0; i<from_.options.length; i++) {
		var o = from_.options[i];
		if (o.selected) {
			to_.options[to_.options.length] = new Option( o.text, o.value, false, false);
		}
	}
	for (var i=(from_.options.length-1); i>=0; i--) {
		var o = from_.options[i];
		if (o.selected) {
			from_.options[i] = null;
		}
	}
	if ((arguments.length<3) || (arguments[2]==true)) {
		sortSelect(from_);
		sortSelect(to_);
	}
	from_.selectedIndex = -1;
	to_.selectedIndex = -1;
	
	Element.update('x-span-'+from+'-num',from_.options.length);
	Element.update('x-span-'+to+'-num',to_.options.length);
};

do_MoveAllOptions = function(from,to) {
	do_SelectAllOptions(from,0);
	if (arguments.length==2) {
		do_MoveSelectedOptions(from,to);
	}
	else if (arguments.length==3) {
		do_MoveSelectedOptions(from,to,arguments[2]);
	}
	else if (arguments.length==4) {
		do_MoveSelectedOptions(from,to,arguments[2],arguments[3]);
	}
};

do_ClearAllOptions = function(obj){
	$(obj).innerHTML = '';
	Element.update('x-span-'+obj+'-num',$(obj).options.length);
};


