﻿


var setPaneStyle=function(pid){
        if (document.location.href.indexOf("layout") > -1 || document.location.href.indexOf("skinsrc") > -1)
        {
            alert(__notAllowToEdit);
            return;
        }   
        
		var url="/tabid/"+__styleTabid+"/actiontabid/"+__tabId+"/paneid/"+pid+"/controlpanel/true/default.aspx";
	    document.location.href=url;
	}
var setPaneLayout=function(pid){
        if (document.location.href.indexOf("layout") > -1 || document.location.href.indexOf("skinsrc") > -1)
        {
            alert(__notAllowToEdit);
            return;
        }   
        
		 var url="/tabid/"+__layoutTabId+"/actiontabid/"+__tabId+"/paneid/"+pid+"/controlpanel/true/default.aspx";
		 document.location.href=url;
}


var divGhost=document.createElement("div");
divGhost.id="divGhost";
divGhost.style.border="2px dashed #999999 ";
var columnsObj={};
var index=0;
var colnum=0;
var __panes=[];
var col=null;
var _oldModuleIndex=0;
barClass="panebar";

var Drag={
   "obj":null,
   "init":function(a,aRoot){
        
			a.onmousedown=Drag.start;
			a.root=aRoot;
			if(isNaN(parseInt(a.root.style.left)))
			   a.root.style.left="0px";
			if(isNaN(parseInt(a.root.style.top)))a.root.style.top="0px";
			a.root.onDragStart=new Function();
			a.root.onDragEnd=new Function();
			a.root.onDrag=new Function();
		},
		
		"start":function(a){
		
		     var b=Drag.obj=this;
			
			 a=Drag.fixE(a);
			
			 var c=parseInt(b.root.style.top);
			 var d=parseInt(b.root.style.left);
			
			 b.root.onDragStart(d,c,a.clientX,a.clientY);
			
			 b.lastMouseX=a.clientX;
			 b.lastMouseY=a.clientY;
			
			 elem=b;
			 b.movescroll=window.setInterval("movescrollbar()",10);
			 document.onmousemove=Drag.drag;
			 document.onmouseup=Drag.end;
			
			 curwinId=Drag.obj.parentNode.id;
			
			 oldColNum=Drag.obj.parentNode.parentNode.colNum;
			
			 return false;
			},
			
			"drag":function(a){
			
			         a=Drag.fixE(a);
					 var b=Drag.obj;
					 var c=a.clientY;
					 var d=a.clientX;
					 var e=parseInt(b.root.style.top);
					 var f=parseInt(b.root.style.left);
					 var h,g;h=f+d-b.lastMouseX;
					 g=e+c-b.lastMouseY;
					 b.root.style.left=h+"px";
					 b.root.style.top=g+"px";
					 b.lastMouseX=d;
					 b.lastMouseY=c;b.root.onDrag(h,g,a.clientX,a.clientY);
					
					 return false;
					 },
					 
		   "end":function(){
		  
					  document.onmousemove=null;
					  document.onmouseup=null;
					  
					  window.clearInterval(Drag.obj.movescroll);
					  Drag.obj.root.onDragEnd(parseInt(Drag.obj.root.style.left),parseInt(Drag.obj.root.style.top));
					 
					 curColNum=Drag.obj.parentNode.parentNode.colNum;
					 curNextWinNode=Drag.obj.parentNode.nextSibling;
					
					 
					  if(curNextWinNode){
					  		curNextWinId=curNextWinNode.id;
					  }
					  else{
					       curNextWinId="NULL";
					 }
				
					
					var tmp_obj=null; 
				
						Drag.obj=null;
						
						},
			"fixE":function(a){
				if(typeof a=="undefined")a=window.event;
				if(typeof a.layerX=="undefined")
					a.layerX=a.offsetX;
				if(typeof a.layerY=="undefined")
					a.layerY=a.offsetY;return a;
			 }
		    }
		    function findPosX(obj){
				var curleft=0;
				if(obj.offsetParent){
				       while(obj.offsetParent){
					         curleft+=obj.offsetLeft;
							 obj=obj.offsetParent;
						}
				}
				else if(obj.x)curleft+=obj.x;
				return curleft;
			}
			function findPosY(obj){
				var curtop=0;if(obj.offsetParent){
					while(obj.offsetParent){
						curtop+=obj.offsetTop;
						obj=obj.offsetParent;
					}
				}
				else if(obj.y)curtop+=obj.y;return curtop;
			}
	
	
	function getclientHeight(){
	      if(window.innerHeight<document.body.clientHeight){
		      return window.innerHeight
		  }
		  return document.body.clientHeight
	};
	
	function getscrollHeight(){
	      if(document.body.scrollHeight>document.documentElement.clientHeight){
		        return document.body.scrollHeight
		   }else{
		         return document.documentElement.clientHeight
		   }
	};
	function movescrollbar(){
	      var body_clientHeight=getclientHeight();
		  var body_scrollHeight=getscrollHeight();
		  var body_scrollTop=document.body.scrollTop;
		  var body_scrollvalue=body_scrollTop;
		  var winvalue=elem.root.offsetTop;
		  var body_Height=document.body.offsetHeight;
		  var step=10;
		  var winTop=body_clientHeight*0.05;
		  var winDown=body_clientHeight-winTop;
		  if(elem.lastMouseY<=winTop){
		  		winvalue=Math.max(0,elem.root.offsetTop-step);
				body_scrollvalue=Math.max(0,body_scrollTop-step);
		  }
		 else if(elem.lastMouseY>=winDown){
		 		winvalue=Math.min(body_scrollHeight-elem.offsetHeight,elem.root.offsetTop+step);
				body_scrollvalue=Math.min(body_scrollHeight-body_clientHeight,body_scrollTop+step);
		}
		var ig_l=body_scrollvalue-body_scrollTop;
		if(ig_l!=0){if((body_scrollHeight-winvalue)<elem.root.offsetHeight)winvalue=body_scrollHeight-elem.root.offsetHeight;
		elem.root.style.top=winvalue+"px";
		document.body.scrollTop=body_scrollvalue;
		}
		
	}
	
function iniPanes(){
	    var str=  dnn.getVar('__dnn_Panes');
	
	    getPanes(str);
	    var modules= YAHOO.util.Dom.getElementsByClassName("window");
	 
	    if(modules.length==0)return;
	    
	   
	    for(var i=0;i<modules.length;i++){
	        var header=YAHOO.util.Dom.getElementsByClassName("window_title","*",modules[i]);
	      
	        if(header==null||header.length==0)continue;
	        initModuleDragEnable(header[0],modules[i]);
	    }
	}
	
function initModuleDragEnable(headerstr,containerstr){

  var header=(typeof(headerstr)==String)?document.getElementById(header):headerstr;
  var divModuleFrame=(typeof(containerstr)==String)?document.getElementById(container):containerstr;

  Drag.init(header,divModuleFrame);
  //Drag.init(divModuleHeader,divModuleFrame);
 
  divModuleFrame.onDragStart=function(x,y,mousex,mousey){
          var left=findPosX(this);
		  var top=findPosY(this);
		  var w=this.offsetWidth;
		  this.style.width=(w)+"px";
		  this.style.left=(left-15)+"px";
		  this.isDragging=true;
	      this.parentNode.insertBefore(divGhost,this);
		  divGhost.style.height=this.offsetHeight+"px";
		  if(Browser.isGecko){
		     divGhost.style.height-=parseInt(divGhost.style.borderTopWidth)*2;
		  }
          this.style.position="absolute";
    	  this.style.top=(top)+"px";
		   divGhost.col=this.parentNode;
		 }		      
divModuleFrame.onDragEnd=function(x,y,el){
    var col=divGhost.col;
	this.isDragging=false;
	
	
	
	col.replaceChild(this,divGhost);
	
	this.style.position="static";
	this.style.width="auto";
	
	var module=getWin(Drag.obj.root);
	var oPane=getCPane(module);
	
	getOldModuleIndex(module,oPane);
	__dnn_dragCompleteBySimon(module,oPane);
}
function getWin(obj){
  
    return getParentByClass("window",obj)
}
function getOldModuleIndex(win,oPane){
    _oldModuleIndex =getIndexOfPane(win,oPane);
}

divModuleFrame.onDrag=function(x,y,mousex,mousey){

			for(var i=0;i<__panes.length;i++){
			  
				if( (x>=findPosX(__panes[i])) && (y>=findPosY(__panes[i])) && (x<=findPosX(__panes[i])+__panes[i].offsetWidth) && (y<=findPosY(__panes[i])+__panes[i].offsetHeight) ){
					col=__panes[i];
					break;
				}
			}
		
			if(col==null){
				col=this.parentNode;
			}
			
			if(divGhost.col!=col){
				divGhost.removeNode();
				divGhost.col=col;
				col.appendChild(divGhost);
			}
			
			var elems=getModuleArr(col);
			
			var myPos=getGhostPos(elems,y);
			
			
			
			if(myPos!=0&&y<=findPosY(elems[myPos-1])){
				divGhost.removeNode();
				col.insertBefore(divGhost,elems[myPos-1]);
			}
			if(myPos!=(elems.length-1)&&y>=findPosY(elems[myPos+1])){
				if(elems[myPos+2]){
					col.insertBefore(divGhost,elems[myPos+2]);
				}else{
					col.appendChild(divGhost);
				}
			}
		}
		
   }
   
 function getModuleArr(column){
 	var arr=[];
	var ln=column.childNodes.length;
	for(var z=0;z<ln;z++){
	    if(column.childNodes[z]==null)continue;
	    if(column.childNodes[z].className==barClass)continue;
		if(column.childNodes[z].tagName!=null&&!column.childNodes[z].isDragging){
			arr.push(column.childNodes[z]);
		}
	}
	
	return arr;
	
}

function getGhostPos(arr,y){
	var ln=arr.length;
	for(var z=0;z<ln;z++){
 		
		if(arr[z]==divGhost)return z;
	}
}
  
 function getPanes(str){
  
    var strPanes=str.split(";");
 
    for(var i=0;i<strPanes.length;i++){
        __panes[i]=$(strPanes[i]);
    }
 
    
 }
 
modules_loaded=true;

function __dnn_dragCompleteBySimon(win,oPane)
{

    var sModuleID = getCtrlID(win);
 
	if (oPane != null)
	{
	
		iIndex = getIndexOfPane(win, oPane);
		if(iIndex>_oldModuleIndex)iIndex=(iIndex+1)*2;
		else iIndex=iIndex*2;
	
		var paras="XmlAction=MoveToPane&moduleid=" + sModuleID+"&pane="+oPane.paneName+"&order="+iIndex  ;
     
		XmlGet(paras,null,null);
	
		
	}
}
function getCPane(win){
   var oCtl = win;
	var oPane;
	var oPanes = __dnn_Panes();
	for (var i=0; i<oPanes.length; i++)
	{
		if (oPanes[i].id == win.parentNode.id)
			oPane = oPanes[i];
	}
	return oPane;
}


function getIndexOfPane(win,oPane){
    var i=0;
    var index=0;
    var wins=getChildren($(oPane.id));
    for(i=0;i<wins.length;i++){
        if(wins[i].className=="window"){
            if(wins[i]==win)return index;
            index++;
        }
    }
    return 0;
}

function getChildren(o){
   
 
    return o.childNodes;
}
   function getChildContent(outerhtml,tag){
        outerhtml=removePart(outerhtml,"<"+tag,">")
        outerhtml=outerhtml.substring(0,outerhtml.length-tag.length-3);
        return outerhtml;
   }

//Simon
function getCtrl(ele){
    var i=0;
    var tags=ele.getElementsByTagName("SPAN");
    for(i=0;i<tags.length;i++){
        if(tags[i].id==null||tags[i].id=="")continue;
        if(tags[i].id.indexOf("_dnnTITLE_lblTitle")>0)return tags[i];
    }
    return null;
}
function getCtrlDiv(ele){
    var i=0;
    var tags=ele.getElementsByTagName("DIV");
 
    return tags[0];
}
function getCtrlID(ele){
    var sid=ele.id;
  
    if(sid==null||sid=="")return "";
    sid=sid.replace("ctr","");
    sid=sid.replace("_DD","");
    return sid;
}

 function getPart(content,startWord,endWord){
			    var strContent=content;
			    var intIndex=strContent.indexOf(startWord);
			    if(intIndex<0)return null;
			    var intEndIndex = strContent.indexOf(endWord, intIndex);
			    if(intEndIndex<0)return null;
			    intEndIndex += endWord.length;
			    return strContent.substring(intIndex, intEndIndex);
}
function removePart(content,startWord,endWord){
	 var parts=getPart(content,startWord,endWord);
	 return content.replace(content,parts,"");
}
//simon			  
			  
function CreateXmlhttp(){
		var xmlhttp = null;
		try{
			xmlhttp = new ActiveXObject('MSXML2.XMLHTTP'); 
			return xmlhttp;
		}
		catch(e){}
		try{
			xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');		
			return xmlhttp;
		}
		catch(e){} 
		return null;
		}
		
function XmlGet(paras,objResponseFunction,objResponse){
    var url=document.location.href;
  
    url=url.replace("#","");
    if(url.indexOf("?")>0)url+="&"+paras;
    else url+="?"+paras;
    var xml=CreateXmlhttp();
    url=url+"&Randomitem=" + Math.random();

	try{ 
	    xml.open("Get",url,true); 
	    xml.onreadystatechange=function(){
	     
	        if(objResponseFunction==null)return;
	     	if(xml.readyState == 4){ 
	              
  					if(xml.status == 200)
					{ 
					    objResponse=xml.responseText;
					    window.setTimeout(objResponseFunction,100);
					}
	        }
	    }
	    xml.send(); 
	}
	catch(e){
	  
	}       
}

///////////////////////////////////////

if (typeof Campton == "undefined") {
    var Campton = {};
}

Campton.namespace = function() {
    var a=arguments, o=null, i, j, d;
    for (i=0; i<a.length; i=i+1) {
        d=a[i].split(".");
        o=Campton;

        // Campton is implied, so it is ignored if it is included
        for (j=(d[0] == "Campton") ? 1 : 0; j<d.length; j=j+1) {
            o[d[j]]=o[d[j]] || {};
            o=o[d[j]];
        }
    }

    return o;
};

//
Campton.init = function() {
    this.namespace("Form","example");
};
Campton.init();
///////////////////////////////////////
function isIE() {
	if(document.all) return true;
	return false;
};

String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}





//
Campton.Form.Validator = function(){
	this._source = new Array();
	this.objId 		= 0; 
	this.infoId		= 1;
	this.action		= 2;
	this.aryMsg		= 3;
	this.actionObj	= 4;
	this.minLength	= 5;
	this.maxLength	= 6;
	this.bRange		= 7;
	this.eRange		= 8;
	this.para		= 9;

	this._isrequest	= 0x1;
	this._isEmail	= 0x2;
	this._isNum		= 0x4;
	this._isDate	= 0x8;
	this._sameas	= 0x10;
	this._limLength	= 0x20;
	this._range		= 0x40;
	this._regExp	= 0x80;
	
	
	
	this.callAction=0;
	this.POSTBACK_template="";
	
	//default classes for infobox
	this.infoboxOkClass			= "OkMsg";
	this.infoboxWarningClass	= "WarningMsg";
	this.infoboxErrorClass		= "ErrorMsg";
	this.infoboxHintClass		= "HintMsg";
	//default classes for input field
	this.inputWarningClass		= "Warning";
	this.inputErrorClass		= "Error";
	this.inputOkClass			= "Ok";
	this.inputNormalClass		= "Normal";
	this.submitButttonIds=[];
	this.postUrl="";
	this.infoboxId="";
	this.infoMode=true;//behind
	this.submitButtonId = "";
	this.containerId="";
	this.hiddenId="";
	this.callback=null;
	this.items={};
};

Campton.Form.Validator.prototype = {
	
	register:function(objId,infoId,action,aryMsg,actionObj,minLength,maxLength,bRange,eRange,para){
	 
		this._source[this._source.length] = new Array(objId,infoId,action,aryMsg,actionObj,minLength,maxLength,bRange,eRange,para);
		this.attachEvent(objId);
		
	},
	setHiddenValue:function(v){
           var txtHidden=$(this.hiddenId);
            if(txtHidden==null)return;
            txtHidden.value=v;
    },
	getIndex:function(obj){
		for(var i = 0; i < this._source.length; i++){
			if(this._source[i][this.objId] == obj.id)
			{
				return i;
			}
		}
		return -1;
	},
    showInBox:function(){
        return this.infoboxId!="";
    },
	getInfobox:function(obj){
	 
	    if(!this.infoMode){
	        return $(this.infoboxId);
	    }
	 
		var index = this.getIndex(obj);
		var desc= $(this._source[index][this.infoId]);
		
		if(desc!=null)return desc;
		
		return $(this.infoboxId);
		
	},
	
	getFocus:function(evnt){
		var obj;
		if (isIE()) {
			obj = event.srcElement;
		}else {
			obj = evnt.target;
		}
		this.showInfo(obj,0);
	},

	lostFocus:function(evnt) {
		var obj;
		if (isIE()) {
			obj = event.srcElement;
		}else {
			obj = evnt.target;
		}
		
		this.checkInfo(obj, this.inputNormalClass);
		
	},

	showMyStatus:function(evnt){
	   
		var obj,errorCode;
		if (isIE()) {
			obj = event.srcElement;
		}else {
			obj = evnt.target;
		}
		
		this.checkInfo(obj, this.infoboxOkClass);
		
	},
	
	checkInfo:function(obj, infoCss){
	
		var errorCode = this.validateValue(obj);
	 
		if(errorCode == 0){
		  
			this.showStatus(obj,"Ok");
			
			
			
			//var index = this.getIndex(obj);
		   
			//var infobox = $(this._source[index][this.infoId]);
			var infobox=this.getInfobox(obj);
			
		    if(infobox==null)return 0;
		 
			if(this.infoMode)
			    infobox.className	= infoCss;
		   
			
			infobox.innerHTML	= __inputInofValid;
		
			
		}

		if(errorCode >= 1){
			this.showStatus(obj,"Error");
			this.showInfo(obj, errorCode);
		}
		
		return errorCode;
	},
	
	
	showStatus:function(obj,stat){
		//Show the status of user currently inputting field
		//3 Statuses: Warning|Error|Ok
	
		switch(stat){
			case "Warning":
				obj.className = this.inputWarningClass;
				break;
			case "Error":
				obj.className = this.inputErrorClass;
				break;
			case "Ok":
				obj.className = this.inputOkClass;
				break;
			default:
				obj.className = this.inputNormalClass;
				break;
		}
		
		
	},
	
	showInfo:function(obj,errorCode,forcible){
	   
		var index = this.getIndex(obj);
		//var infobox =this.getInfobox(this._source[index][this.infoId]);
	    var infobox =this.getInfobox(obj);
	 
		if(infobox){
			if(infobox.className != this.infoboxErrorClass || forcible){
				if(errorCode == 0){
					infobox.className	= this.infoboxWarningClass;
					infobox.innerHTML	= this.getErrorMsg(index,errorCode);
				}
				if(errorCode >0){
				    infobox.className	= this.infoboxErrorClass;
					infobox.innerHTML	= this.getErrorMsg(index,errorCode);
				}
				if(errorCode <0){
					infobox.className	= this.infoboxHintClass;
				}
			}
		}	
		
	},
	
	getErrorMsg:function(index,errorCode){
		var strInfo = new Array();
	
		strInfo = this._source[index][this.aryMsg];
		
		if(strInfo != null){
			return strInfo[errorCode];
		}
		else{
			return "";
		}
	},
	
	quanjiao2Banjiao:function(str) {
		var i;
		var result = '';
		for (i = 0; i < str.length; i++) {
			code = str.charCodeAt(i);
			if (code >= 65281 && code < 65373) {
				result += String.fromCharCode(str.charCodeAt(i) - 65248);
			}
			else {
				result += str.charAt(i);
			}
		}
		return result;
	},
	
	createDelegate: function(oThis, pFunc){
        return function() {return pFunc.apply(oThis, arguments);};
    },

	//
	attachEvent:function(objId){
		var obj = document.getElementById(objId);
		if(obj){
			obj.onfocus	= this.createDelegate(this,this.getFocus);
			obj.onblur	= this.createDelegate(this,this.lostFocus);
			obj.onkeyup	= this.createDelegate(this,this.showMyStatus);
		}
	},

	//
	detachEvent:function(){
		if(window.removeEventListener){
			//FireFox
		}
		else if(window.detachEvent){
		
		}
	},

    getItems:function(){
        var items=[];
       
		for(var i = 0; i < this._source.length; i++){
		    items[i]=this._source[i][0];
		}
		return items;
    },
   
	onSubmit:function(){
	 
		var status = true;
//		var submitButton = document.getElementById(this.submitButtonId);
//		submitButton.disabled = true;
       
		for(var i = 0; i < this._source.length; i++){
		   
		    var obj = $(this._source[i][this.objId]);
			
			if(obj != null)
			{
			    var result=this.checkInfo(obj, this.inputNormalClass);
			   
				if(result != 0)
					status = false ;
			}
			else{
				//status = false ;
			}
		}

//		submitButton.disabled = false;
   
        if(status){
            if(this.postUrl!=""){
              
                var manager=new Campton.Form.Manager(); 
                manager.items=this.getItems();
                manager.url=this.postUrl;                
              
                manager.post(this.containerId,this.callAction,this.POSTBACK_template, this.callback);
              
                this.wait(this.callback==null);
               
                
            }
        }
        
		return status;
	},
	
	init:function(){
	    __formContent=$(this.containerId).innerHTML;
	  
		if(this.submitButtonId.length > 0){
		    this.submitButttonIds=this.submitButtonId.split(";");
		    var i=0;
		   
		    for(i=0;i<this.submitButttonIds.length;i++){
		        if(this.submitButttonIds[i]==""||this.submitButttonIds[i]==undefined)continue;
		        var submitButton = document.getElementById(this.submitButttonIds[i]);
		       
			    if(typeof(submitButton) == "undefined" || submitButton == null) return;
			   
			    submitButton.onclick = this.createDelegate(this, this.onSubmit);
			    
		    }
			
		}
	
		for(var i = 0; i < this._source.length; i++){
			var obj = document.getElementById(this._source[i][this.objId]);
			var info = document.getElementById(this._source[i][this.infoId]);
			if(obj != null && info != null)
			{
				if(this.isRequired(this._source[i][this.action]))
					obj.className = this.inputWarningClass;
					
				info.className = "Normal";
				info.innerHTML	= this.getErrorMsg(i,0);
			}
		}
	},
	
	/////////////////////////////////////////
	//
	num2Bin:function(num){
		if(!isNaN(num) && num > 1){
			var str = "";
			do{
				if(num % 2 == 1){
					str = "1" + str;
				}
				else{
					str = "0" + str;
				}
			}while((num = parseInt(num/2)) > 1)
			return "1" + str;
		}
		else if(!isNaN(num) && num == 1){
			return "1";
		}
		else {
			return "0";
		}
	},
	
	getMsgIndex:function(sum, x){
		if(sum == x) return 1;
		
		var strSum = this.num2Bin(sum);
		
	
		
		var lnS = strSum.length;
		var lnX = this.num2Bin(x).length;
		var arraySum = strSum.split("");
		var num = 0;
		for(var i = lnS - lnX; i < arraySum.length; i++){
			if(arraySum[i] == "1")
				num++;
		}
		
		return num;
	},
	/////////////////////////////////////////
	//
	validateValue:function(obj){
		//trim
		var patn = /^\s/;
		if(patn.test(obj.value))	obj.value = obj.value.trim();
		
		//switcher
		var errorCode = 0;
		var index = this.getIndex(obj);
		var action = this._source[index][this.action];
		
		if(this.isRequired(action)){
			errorCode = this.validateRequired(obj, action);
		}
		else{
			if(obj.value.length == 0) return 0;
		}
		
		if(this.isEmail(action) && errorCode ==0){
			errorCode = this.validateEmail(obj, action);
		}
		
		if(this.isNum(action) && errorCode ==0){
			errorCode = this.validateNum(obj, action);
		}
		
		if(this.isDate(action) && errorCode ==0){
			errorCode = this.validateDate(obj, action);
		}
		
		if(this.isSameas(action) && errorCode ==0){
			errorCode = this.validateSameas(index, action);
		}
		
		if(this.isLimLength(action) && errorCode ==0){
			errorCode = this.validateLimLength(index, action);
		}
		
		if(this.isRange(action) && errorCode ==0){
			errorCode = this.validateRange(index, action);
		}
		
		if(this.isRegexp(action) && errorCode ==0){
			errorCode = this.validateRegexp(index, action);
		}
	
		return errorCode;
	},
	
	//
	isRequired:function(action){
		if((this._isrequest & action) > 0)
			return true;
		else
			return false;
	},
	
	validateRequired:function(obj, action){
		if(obj.value.length > 0){
			return 0;
		}
		else{
			return this.getMsgIndex(action, this._isrequest);
		}
	},
	
	isEmail:function(action){
		if((this._isEmail & action) > 0)
			return true;
		else
			return false;
	},
	
	validateEmail:function(obj, action){
		var str = obj.value;
		var patn = /^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
		if(patn.test(str)){
			return 0;
		}else{
			return this.getMsgIndex(action, this._isEmail);
		}
	},
	
	isNum:function(action){
		if((this._isNum & action) > 0)
			return true;
		else
			return false;
	},
	
	validateNum:function(obj, action){
	   
	    var str = obj.value;
	    
		if(!isNaN(str))
			return 0;
		else
			return this.getMsgIndex(action, this._isNum);
	},
	
	isDate:function(action){
		if((this._isDate & action) > 0)
			return true;
		else
			return false;
	},
	
	validateDate:function(obj, action){
		var str = obj.value;
		var patn = /^(\d{4}-\d{1,2}-\d{1,2})(\s\d{1,2}:\d{1,2}:\d{1,2})?$/;
		if(patn.test(str))
			return 0;
		else
			return this.getMsgIndex(action, this._isDate);
	},
	
	isSameas:function(action){
		if((this._sameas & action) > 0)
			return true;
		else
			return false;
	},
	
	validateSameas:function(index, action){
		var obj = document.getElementById(this._source[index][this.objId]);
		var obj2 = document.getElementById(this._source[index][this.actionObj]);
		if(obj != null && obj2 != null && obj.value == obj2.value){
			return 0;
		}
		else{
			return this.getMsgIndex(action, this._sameas);
		}
	},
	
	isLimLength:function(action){
		if((this._limLength & action) > 0)
			return true;
		else
			return false;
	},
	
	validateLimLength:function(index, action){
		var obj = document.getElementById(this._source[index][this.objId]);
		var minLength = this._source[index][this.minLength];
		var maxLength = this._source[index][this.maxLength];
		if(obj != null){
			if((maxLength == "undefined" || maxLength == null || maxLength < 0) && obj.value.length >= minLength){
				return 0;
			}
			
			if((minLength == "undefined" || minLength == null || minLength == "") && obj.value.length <= maxLength){
				return 0;
			}
			
			if(obj.value.length >= minLength && obj.value.length <= maxLength){
				return 0;
			}
		}
		
		return this.getMsgIndex(action, this._limLength);
	},
	
	isRange:function(action){
		if((this._range & action) > 0)
			return true;
		else
			return false;
	},
	
	validateRange:function(index, action){
		var obj = document.getElementById(this._source[index][this.objId]);
		var bRange = this._source[index][this.bRange];
		var eRange = this._source[index][this.eRange];
		if(obj != null){
			if((eRange == "undefined" || eRange == null || eRange == "") && obj.value >= bRange){
				return 0;
			}
			
			if((bRange == "undefined" || bRange == null || bRange == "") && obj.value <= eRange){
				return 0;
			}
			
			if(obj.value >= bRange && obj.value <= eRange){
				return 0;
			}
		}
		
		return this.getMsgIndex(action, this._range);
	},
	
	isRegexp:function(action){
		if((this._regExp & action) > 0)
			return true;
		else
			return false;
	},
	
	validateRegexp:function(index, action){
		var obj = document.getElementById(this._source[index][this.objId]);
		var patn = this._source[index][this.para];
		if(patn.test(obj.value)){
			return 0;
		}
		else{
		
			return this.getMsgIndex(action, this._regExp);
		}
	},
	wait:function(flag){
      
        var cc=$(this.containerId);
        var loading=new Campton.Form.Loading(cc);
        if (flag)
           cc.innerHTML="";
        
        loading.show();
     
        
    } 
}

var __formCId;
var __postback_action=0;
var __postback_template="";
var __formContent="";
formPostSuccess=function(o){

    this._POSTBACK_default=0;
	this._POSTBACK_response=1;
	this._POSTBACK_addBorder=2;
	this._POSTBACK_template=4;
	this._POSTBACK_nextTemplate=8;
	
	$h(divLoading);
	var text=o.responseText;
	
	var container= $(__formCId);
	if(container==null){alert("ok");return;}
	var callback_default=function(){
	    setInnerHTML(container,"<div style=\"text-align:center;padding:20px;\"><div class=\"OkMsg_lite\" style='width:80%;height:150px;padding:12px;text-align: center;'>"+__form_postback_msg+"</div>"+__form_return+"</div>");
	};
	var callback_response=function(){
	    setInnerHTML(container,"<div style=\"text-align:center;padding:20px;\"><div class=\"OkMsg_lite\" style='width:80%;height:150px;padding:12px;text-align: center;'>"+text+"</div>"+__form_return+"</div>");
	    
//	    text+__form_return);
	};
	var callback_addborder=function(){
	    setInnerHTML(container,"<div style=\"text-align:center;padding:20px;\"><div class=\"OkMsg_lite\" style='width:80%;height:150px;padding:12px;text-align: center;'>"+text+"</div>"+__form_return+"</div>");
	};
	var callback_template=function(){
	     __postback_template=__postback_template.replace("{0}",text);
	    setInnerHTML(container,"<div style=\"text-align:center;padding:20px;\"><div class=\"OkMsg_lite\" style='width:80%;height:150px;padding:12px;text-align: center;'>"+__postback_template+"</div>"+__form_return+"</div>");
	};
	
	switch(parseInt(__postback_action)){
	    case this._POSTBACK_response:
	        callback_response();
	        break;
	    case this._POSTBACK_addBorder:
	        callback_addborder();
	        break;
	    case this._POSTBACK_template:
	        callback_template();
	        break;
	    //case this._POSTBACK_nextTemplate:
	    default:
	       callback_default();
	       break;
	    
	};
	
    
   
     
};
var gobacktopre=function(){
     var container= $(__formCId);
	 if(container==null){return;}
     container.innerHTML=__formContent;
};
var formPostFailure=function(o){
     $h(divLoading);
     alert("formPostFailure");
};

var formPostCallback =
{
         success: formPostSuccess,
         failure: formPostFailure
};

var showWait=function(obj){
    
};    

Campton.Form.Manager=function(){
   
    this.items=[];
    this.url="";
  
   
}

Campton.Form.Manager.prototype={
     getValues:function(){
        var temp="";
        var first=true;
        var mutiFirst=true;
        for(var i = 0; i < this.items.length; i++){
            var strValue="";
            
            var item=document.forms[0][this.items[i]];
           
            if(item==null){
                 if(mutiFirst){          
                     strValue=this.getMutiValue(this.items[i]);
                     temp+=first?"":"&";
                     first=false;
                     mutiFirst=false;
                     temp+=strValue;
                 }
                
            }
            else{
                 if(item.value==null){
                     if(!item.length)continue;
                     var strValue="";
                     if(item.length==0)continue;
                  
                     for(var j=0;j<item.length;j++){
                        
                         if(item[j].type==null)continue;
                         
                         if(item[j].type.toLowerCase() != "radio" && item[j].type.toLowerCase()!="checkbox")continue;
                         if(!item[j].checked)continue;
                         if(strValue!="")strValue+=";";
                         strValue+=item[j].value;
                         
                     }
                     temp+=first?"":"&";
                     first=false;
                     temp+=item[0].title+"=" +strValue;
                     continue;
                 }
                 
                  if(!item.value)continue;
                  if(item.value==""||item.value==null)continue;
                  temp+=first?"":"&";
                  first=false;
			      temp+=item.title+"=" +item.value ;
            }     
           
		}
//		alert(temp);
		return temp;
    },
    getMutiValue:function(itemId){
        var temp="";
        var container= $(__formCId);
      
        var inputs=container.getElementsByTagName("INPUT");
        for(var i=0;i<inputs.length;i++){
            temp+=inputs[i].name+"="+urlEncode(inputs[i].value);
            if(i<inputs.length)temp+="&";
        }
        return temp;
    },
    
    post:function(id,action,template,callback){
        __formCId=id;
         var data=this.getValues();
               
//url, sArg, pSuccessFunc, sContext, pFailureFunc, pStatusFunc, bAsync        
        //dnn.xmlhttp.postBack (this.url, data, null,formPostFailure,formPostSuccess,true);      
       
        
         __postback_action=action;
         __postback_template=template;
                 
         var vCallback=(callback==null||callback=="")?formPostCallback:callback;
//alert(this.url);
         YAHOO.util.Connect.asyncRequest("POST", this.url, vCallback, data);       
    }
}

var divLoading;


Campton.Form.Loading=function(obj){
     divLoading =$("loading");
     this.node=obj;
     
}
Campton.Form.Loading.prototype={
    show:function(){
       
        //this.node.insertBefore(divLoading);
        var pos=this.getPosition();
        
        divLoading.innerHTML=__form_loading;
         
        YAHOO.util.Dom.setStyle(divLoading,"display","block");
        YAHOO.util.Dom.setStyle(divLoading,"left",pos[0]);
        YAHOO.util.Dom.setStyle(divLoading,"top",pos[1]+30);
        $s(divLoading);
       
       
       
      
    },
   
    getPosition:function(){
        var myPos = YAHOO.util.Dom.getXY(this.node);
        var w=this.node.offsetWidth;
        var h=this.node.offsetHeight;
       
        myPos[0]=myPos[0]+w/2-divLoading.style.width/2-50;
        myPos[1]=myPos[1]+h/2;
        return myPos;
    }
}

// Paging: Get content and put it into entity grid by ajax
function GetGrid(command, key, DataParam, getGridCallback)
{
    var url='/ajax.aspx';
    var data;
    
    data = 'command='+command+'&key='+key;
    data += '&'+DataParam;    
    YAHOO.util.Connect.asyncRequest("POST", url, getGridCallback, data);
}

function GetPageContent(PageIndex, PageSize)
{
    var strParam ='where='+_where+'&pageindex='+PageIndex+'&pagesize='+PageSize;
    GetGrid(_command, _key, strParam, getGridCallback);
}

function numbersonly(){return true;}



//--Dialogs begin



function changeEType(node){
    var t1=node.options[node.selectedIndex].text;
    var t2=node.options[node.selectedIndex==0 ? 1 :0].text;
  
    var div=node.parentNode.parentNode;
    
    var ele=div.getElementsByTagName("DIV");
   
    for(var i=0;i<ele.length;i++){
   
       if(ele[i].innerHTML.toLowerCase().indexOf("option")>=0)continue; 
      
       ele[i].innerHTML=ele[i].innerHTML.replace(t2,t1).replace(t2,t1);
    }
    
}

function gadd(url1,url2,mid,node){
    var url;
    var typeid=getTypeId(node);
    if(typeid==1)url=url1;
    else url=url2;
    window.open(url + "?listid="+mid);
}
function gsel(mid,node)
{
    var __title =__choseProduct;
    var __link="";
    showMask();
    var callback="";
    var typeid=getTypeId(node);
    templateID=mid;
    pids=dnn.getVar("PID_"+mid);
    var pmd=dnn.getVar("PMD_"+mid);
    campton.seleter({url:"/ajax.aspx?typeid="+typeid+"&templateid="+templateID+"&pids="+pids+"&pmd="+pmd ,currentTitle:pmd,title:__title, className:"tablist",closeTag:__closeTag, close: (callback)?callback:closeMask, disableClose: false, subNavActive:"subNavActive", tools:[{label:"", link:__link}], command:{left:"porducetreeview", content: "porducetview"} });
}
function getTypeId(node){
  
    var container=node.parentNode.parentNode;
  
    var select=container.getElementsByTagName("SELECT")[0];
  
    bizcategorytypeID=select.value;
    return bizcategorytypeID;
    

}

function showSelectCategoryInAdvSelect(value, formId)
{
//    alert("value = " + value + ", formId = " + formId);
    var tdAdvSelect_selectcategory = $("trAdvSelect_selectcategory");
    
    if (value == 2)
        tdAdvSelect_selectcategory.style.display = "block";
    else
        tdAdvSelect_selectcategory.style.display = "none";
}
function showSelectCategoryInAdvSelectWhenOnLoad()
{    
  var tdAdvSelect_categorytype = $("tdAdvSelect_categorytype");
  var trAdvSelect_selectcategoryTemp = $("trAdvSelect_selectcategory");

//  alert("radioCategoryTypeInAdvSelect.value = " + radioCategoryTypeInAdvSelect.value);

  var inputs=tdAdvSelect_categorytype.getElementsByTagName("INPUT");
  for(var i=0;i<inputs.length;i++)
  {
       if (!inputs[i].checked)
            continue;
       if (inputs[i].value == "2")
          trAdvSelect_selectcategoryTemp.style.display = "block";
  }
}

function Selectproductfromcategory(pageIndex)
{
   var select=$("selectproductclass");
   var index=select.selectedIndex;
   var bizCategory=select[index].value;
   var keyWord=$("keyword");
   var keyWordStr=urlEncode(keyWord.value.replace(/(^\s*)|(\s*$)/g,""));
   var url = "/ajax.aspx?command=porducetview&bizcategoryid="+bizCategory+"&keyword="+keyWordStr+"&templateid="+templateID+"&currenttypeid="+bizcategorytypeID+"&template=1&rid="+Math.random();
   if(pageIndex>0)
   {
    var url =url+"&pageindex="+pageIndex;	
   }
   
   var SuccessToSelect = function(o)
     { 
        
        getObject("divProductsGrid").innerHTML = o.responseText;          
    }
    var FailToSelect = function(o){        
      getObject("divProductsGrid").innerHTML ="Fail to get content..."; 
    }
    var CallbackForSelect =
    {
         success: SuccessToSelect,
         failure: FailToSelect
    };
	YAHOO.util.Connect.asyncRequest('GET', url, CallbackForSelect, "");
}



var SuccessToAdvanceSelect=function(o)
{
  $h(divLoading);
  if(o.responseText!="success")
  {
    alert(__submitfail);
  }
  else
  {
   window.location.reload(true);
  }
  
}

var FailToAdvanceSelect=function(o)
{
    alert(__timeout);
}

var selectProductCallBack =
{
  success: SuccessToAdvanceSelect,
  failure: FailToAdvanceSelect
};


function updatetemplatecontent()
{
  var idToStr="";
  var chkbox=document.getElementsByName("productchkbox");
  var count=chkbox.length;
  for(var i=0; i<count;i++)
  {
    if(chkbox[i].checked)
     {
      if(idToStr!="")idToStr+=",";
      idToStr+=chkbox[i].id;
     }
  }
  idToStr+=",";
 if(idToStr.length>0)
   {  
      var url = "/ajax.aspx?command=selectproducttoxml&templateid="+templateID+"&currenttypeid="+bizcategorytypeID+"&entityids="+idToStr;
      var SuccessToSave = function(o)
        { 
           if(o.responseText!="success")
             {
               alert(__submitfail);
             }
             else
             {
               window.location.reload(true);
             } 
           
        }
      var FailToSave = function(o)
       {  
         alert(__timeout);
         
       }
     var CallbackForSaveXML =
      {
         success: SuccessToSave,
         failure: FailToSave
      };
    
    YAHOO.util.Connect.asyncRequest('GET', url, CallbackForSaveXML, "");
  }
  
  
}

function gstyle(mid,node)
{
    var __title =__entityStyle;
    var __link="";
    showMask();
    var callback="";
    var typeid=getTypeId(node);
    templateID=mid;
    var psty=dnn.getVar("PST_"+mid);
    campton.seleter({url:"/ajax.aspx?typeid="+typeid+"&templateid="+templateID ,currentTitle:psty,title:__title, className:"tablist",closeTag:__closeTag, close: (callback)?callback:closeMask, disableClose: false, subNavActive:"subNavActive", tools:[{label:"", link:__link}], command:{left:"eintitystyletreeview", content: "eintitystyleview"} });
}

function CanelEnter()
{
    if (event.keyCode == 13)
    {
         Selectproductfromcategory();
         return false;
    }
    return true;
}

//--Dialogs end