/**
 * Name :- devendra kumar (dev30_cdac@yahoo.co.in)
 * Date :- 08-09-2008
 * */
var horizontal_offset="0px"; //horizontal offset of hint box from anchor link
var vertical_offset="0px"; //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

	function getposOffset(what, offsettype){
		var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
		var parentEl=what.offsetParent;
		while (parentEl!=null){
			totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;}
		
		return totaloffset;
	}

	function iecompattest(){
		return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
	}
	function hidetip(){
		dropmenuobj=document.getElementById("hintbox");
		dropmenuobj.style.visibility="hidden";
		dropmenuobj.style.left="-500px";
	}
	
	function clearbrowseredge(obj, whichedge){
		var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
		if (whichedge=="rightedge"){
				var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
				dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
				if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
				edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
		}else{
				var windowedge = ie && !window.opera? iecompattest().scrollBottom+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
				dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
				return edgeoffset;
				if (windowedge-dropmenuobj.y > dropmenuobj.contentmeasure)
				edgeoffset= dropmenuobj.contentmeasure-obj.offsetHeight
			}
			
		return edgeoffset;
	}

	function noError(object){
		if(object && object.id){
			$("#"+object.id+"_IMG").css('display','inline').fadeOut(2000);
		}
	}

function clearErrorMessages(form) {
	removeActionError(form);
    var table = form.childNodes;
    if( typeof table == "undefined" ) {
        table = form.childNodes[0];
    }

    var rows = table.rows;
    var rowsToDelete = new Array();
    var allError = $(".invalidTxt");
   
    for(var i=0; i< allError.length;i++){
    	rowsToDelete.push(allError[i]);
    }
    for (var i = 0; i < rowsToDelete.length; i++) {
     	removeError(rowsToDelete[i]);
     }
/*    
    var getAllDivTag =  form.getElementsByTagName("div");
    if (rows == null){
       	 for(var i = 0; i < getAllDivTag.length; i++){
	    	if(getAllDivTag[i].nodeName == "DIV" && getAllDivTag[i].id == "errorMsgText") {
	    		//var part = getAllDivTag[i].parentNode; 
	    		//part.removeChild(getAllDivTag[i]);
	    		rowsToDelete.push(getAllDivTag[i].parentNode);
	    		
	    	}
    	}
    	 for (var i = 0; i < rowsToDelete.length; i++) {
    	 	removeError(rowsToDelete[i]);
    	 }
        return true;
    }

    for(var i = 0; i < rows.length; i++) {
        var r = rows[i];
        if (r.getAttribute("errorFor")) {
            rowsToDelete.push(r);
        }
    }

    // now delete the rows
    for (var i = 0; i < rowsToDelete.length; i++) {
        var r = rowsToDelete[i];
        table.deleteRow(r.rowIndex);
        //table.removeChild(rowsToDelete[i]); 
    }
   */
    
}

function clearErrorLabels(form) {
	return true;
    // set all labels back to the normal class
    var elements = form.elements;
    for (var i = 0; i < elements.length; i++) {
        var e = elements[i];
        var cells = e.parentNode.parentNode.cells;
        if (cells && cells.length >= 2) {
            var label = cells[0].getElementsByTagName("label")[0];
            if (label) {
                label.setAttribute("class", "label");
                label.setAttribute("className", "label"); //ie hack cause ie does not support setAttribute
            }
        }
    }

}
function enablingValidationFlag(object){
		return true;
		var td = object.parentNode;
		var nextSib = object.nextSibling;
		var divStatus = document.createElement("div");
		divStatus.setAttribute("class", "hicon icon1");
		divStatus.setAttribute("className", "hicon icon1");
		divStatus.setAttribute("id", "validMessage_"+object.name);
		if(nextSib && nextSib.id &&(nextSib.id).indexOf("validMessage_") !=-1 ){
			nextSib.setAttribute("class", "hicon icon1");
			nextSib.setAttribute("className", "hicon icon1");
			nextSib.style.display ="";
		}else{
			if(nextSib){
				 td.insertBefore(divStatus,nextSib);
			}else{
				 td.appendChild(divStatus);
			}
		}
		
	}
	
function addError(e, errorText) {
	if(e == null){
		return true;
	}
try {
        // clear out any rows with an "errorFor" of e.id
       
		/*Adding error i8n table tag*/
		if(e.parentNode && e.parentNode.parentNode && (e.parentNode.parentNode.id && (e.parentNode.parentNode.id).indexOf("FDB")!= -1)){
			var row = e.parentNode.parentNode;
			row.setAttribute("class","veriInvalid");
			row.setAttribute("className","veriInvalid");
			var childNodes = row.childNodes;
			for(var i= 0; i< childNodes.length;i++){
				
				if( childNodes[i].id && (childNodes[i].id).indexOf("FD") != -1){
					if((childNodes[i].id).indexOf("FDL") != -1){
						var childTd = childNodes[i].childNodes;
						for(var j=0;j<childTd.length; j++){
							if(childTd[j].nodeName == "LABEL" || (childTd[j].id && (childTd[j].id).indexOf("label")!=-1)){
								childTd[j].setAttribute("class","lableerrormsg");
								childTd[j].setAttribute("className","lableerrormsg");
								
							}
						}
					}else if((childNodes[i].id).indexOf("FDE") != -1){
						var divTag = document.createElement("div");
						divTag.setAttribute("id", "errorMsgText");
						divTag.setAttribute("class", "invalidTxt");
						divTag.setAttribute("className", "invalidTxt");
						divTag.innerHTML = errorText;
						childNodes[i].appendChild(divTag);
					}
				}
			}

		}else if(e.parentNode && e.parentNode.parentNode && (e.parentNode.parentNode.id && (e.parentNode.parentNode.id).indexOf("FDA")!= -1)){
					var row = e.parentNode.parentNode;
					//row.setAttribute("class","veriInvalid");
					//row.setAttribute("className","veriInvalid");
					var childNodes = row.childNodes;
					var pId ="";
					if(e.parentNode.id){
						pId = e.parentNode.id;
						pId= pId.replace("_FDI","");
					}
					for(var i= 0; i< childNodes.length;i++){
							var tId ="temp";
							if(childNodes[i].id && (childNodes[i].id).indexOf("FD") != -1){
								tId= childNodes[i].id.replace("_FDL","");
							}
							if(pId ==tId){
								if( childNodes[i].id && (childNodes[i].id).indexOf("FD") != -1 ){
									if((childNodes[i].id).indexOf("FDL") != -1 && (childNodes[i].id).indexOf("FDL") != -1){
										var childTd = childNodes[i].childNodes;
										for(var j=0;j<childTd.length; j++){
											if(childTd[j].nodeName == "LABEL" || (childTd[j].id && (childTd[j].id).indexOf("label")!=-1)){
												childTd[j].setAttribute("class","lableerrormsg");
												childTd[j].setAttribute("className","lableerrormsg");
												
											}
										}
									}else if((childNodes[i].id).indexOf("FDE") != -1){
										var divTag = document.createElement("div");
										divTag.setAttribute("id", "errorMsgText");
										divTag.setAttribute("class", "invalidTxt");
										divTag.setAttribute("className", "invalidTxt");
										divTag.innerHTML = errorText;
										childNodes[i].appendChild(divTag);
									}
								}
							}
						}
						if(document.getElementById("errorBox") ){
							    if(document.getElementById(e.parentNode.id + "errorMsg")){
							    	var parentTagErrorMsg = document.getElementById(e.parentNode.id + "errorMsg").parentNode;
									if(parentTagErrorMsg){
										parentTagErrorMsg.removeChild(document.getElementById(e.parentNode.id + "errorMsg"));
									}
							    }
								var divTag = document.createElement("div");
								divTag.setAttribute("id", "errorMsgText");
								divTag.setAttribute("class", "invalidTxt");
								divTag.setAttribute("className", "invalidTxt");
								divTag.innerHTML = errorText;
								divTag.id = e.parentNode.id + "errorMsg";
								document.getElementById("errorBox").appendChild(divTag);
								document.getElementById("errorBox").style.display= "";
						}
			}else{
						var sibling ;
						if(e && e.nextSibling){
							var sibling = e.nextSibling;	
						}
						
						if(sibling && sibling.nodeName == "SPAN" && sibling.id == "skipMe"){
							sibling = sibling.nextSibling;
						}else if(sibling && sibling.nextSibling && sibling.nextSibling.nodeName == "SPAN" && sibling.nextSibling.id == "skipMe"){
								sibling = sibling.nextSibling.nextSibling;
						}
						
						var parentTag = e.parentNode;
						var divTag = document.createElement("div");
						//divTag.setAttribute("class", "errorMessage");
				        //divTag.setAttribute("className", "errorMessage");
				        divTag.setAttribute("id", "errorMsgText");
				        divTag.setAttribute("class", "invalidTxt");
						divTag.setAttribute("className", "invalidTxt");
					
				    	
						divTag.innerHTML = errorText;
						if(e.nextSibling){
							parentTag.insertBefore(divTag,sibling);
						}else{
							parentTag.appendChild(divTag);
						}
			   }
		 } catch (e) {
			alert(e.name + ': ' + e.message );
		 }

}
	function addActionError(formObj, errorText){
		try{	
			var divA = document.createElement("div");
				divA.setAttribute("class", "ActionErrorMsg");
				divA.setAttribute("className", "ActionErrorMsg");
			
			var divB = document.createElement("div");
				divB.setAttribute("class", "ActionErrorTxt");
				divB.setAttribute("className", "ActionErrorTxt");
				divB.innerHTML = errorText;
				divA.appendChild(divB);
			var firstChildForm = formObj.firstChild;
				formObj.insertBefore(divA,firstChildForm);
				
		} catch (e) {
				alert(e.name + ': ' + e.message );
	 	}
	}
	function removeActionError(form){
	try{
		if(form == null || !form){
    			return true;
    	}
    	var actionErrorDivs = $(".ActionErrorMsg");
    	var rowsToDelete = new Array();
	   
	   
	    for(var i=0; i< actionErrorDivs.length;i++){
	    	rowsToDelete.push(actionErrorDivs[i]);
	    }
	   for (var i = 0; i < rowsToDelete.length; i++) {
	   		var parent = rowsToDelete[i].parentNode;
	   		if(parent){
		    	parent.removeChild(rowsToDelete[i]);
		    }
	    }
	   }catch(e){
	   }
	     return true;
	}
    function removeError(e){
    		if(e == null || !e){
    			return true;
    		}
		    if(e.parentNode && e.parentNode.parentNode && (e.parentNode.parentNode.id && (e.parentNode.parentNode.id).indexOf("FDB")!= -1)){
					var row = e.parentNode.parentNode;
					row.setAttribute("class","");
					row.setAttribute("className","");
					var childNodes = row.childNodes;
					for(var i= 0; i< childNodes.length;i++){
						if( childNodes[i].id && (childNodes[i].id).indexOf("FD") != -1){
							if((childNodes[i].id).indexOf("FDL") != -1){
								var childTd = childNodes[i].childNodes;
								for(var j=0;j<childTd.length; j++){
									if(childTd[j].nodeName == "LABEL" || (childTd[j].id && (childTd[j].id).indexOf("label")!=-1)){
										childTd[j].setAttribute("class","");
										childTd[j].setAttribute("className","");
									}
								}
							}else if((childNodes[i].id).indexOf("FDE") != -1){
								if(childNodes[i].firstChild){
									removeHelp(childNodes[i].firstChild);
								}
							}
						}
					}
		
			}else if(e.parentNode && e.parentNode.parentNode && (e.parentNode.parentNode.id && (e.parentNode.parentNode.id).indexOf("FDA")!= -1)){
					var row = e.parentNode.parentNode;
					row.setAttribute("class","");
					row.setAttribute("className","");
					var childNodes = row.childNodes;
					var pId ="";
					if(e.parentNode.id){
						pId = e.parentNode.id;
						pId= pId.replace("_FDI","");
					}
					for(var i= 0; i< childNodes.length;i++){
						var tId ="temp";
							if(childNodes[i].id && (childNodes[i].id).indexOf("FD") != -1){
								tId= childNodes[i].id.replace("_FDL","");
							}
							if(pId ==tId){
								if( childNodes[i].id && (childNodes[i].id).indexOf("FD") != -1){
									if((childNodes[i].id).indexOf("FDL") != -1){
										var childTd = childNodes[i].childNodes;
										for(var j=0;j<childTd.length; j++){
											if(childTd[j].nodeName == "LABEL" || (childTd[j].id && (childTd[j].id).indexOf("label")!=-1)){
												childTd[j].setAttribute("class","");
												childTd[j].setAttribute("className","");
											}
										}
									}
									
								}
							}
					}
						
						if(document.getElementById(e.parentNode.id + "errorMsg")){
							var parentTagErrorMsg = document.getElementById(e.parentNode.id + "errorMsg").parentNode;
							if(parentTagErrorMsg){
								parentTagErrorMsg.removeChild(document.getElementById(e.parentNode.id + "errorMsg"));
							}
						}
						
		
			}else if(e.id && e.id.indexOf('errorMsg') != -1){
				var objId= e.id;
				objId = objId.substring(0,e.id.indexOf('errorMsg'));
				if(document.getElementById(objId)){
					var child2 = document.getElementById(objId).childNodes;
					if(child2 && child2.length >0){
						removeError(child2[0]);
					}
				}
			}else{
				removeHelp(e);
			}
    /*	try{
			
			
			
			var cells = object.parentNode.parentNode.cells;
	        if (cells && cells.length >= 2) {
	            var label = cells[0].getElementsByTagName("label")[0];
	             if (label) {
	                label.setAttribute("class", "label");
	                label.setAttribute("className", "label"); //ie hack cause ie does not support setAttribute
	            }
	        }
		        
			var  nextsib = object.nextSibling;
			
			var td1 = object.parentNode; 
		
			do{
				if(nextsib){
					if( nextsib.nodeName == "#text"||(nextsib.nodeName=="SPAN"  )|| nextsib.nodeName == "BR" ){
							var temp = nextsib;
							nextsib= nextsib.nextSibling;
						    td1.removeChild(temp);
					}else{
						nextsib= nextsib.nextsib;
					}
				}
			}while(nextsib);
		
		} catch (e) {
	     alert(e.name + ': ' + e.message );
	    }
	    * */
    }
    
function focusHelp(e,errorText){
	 
		var parentTag = e.parentNode;
		var divTag = document.createElement("div");
    	var sibling = e.nextSibling;
		divTag.innerHTML = errorText;
		if(sibling){
			parentTag.insertBefore(divTag,sibling);
		}else{
			parentTag.append(divTag);
		}
 
}
	
function removeHelp(object){
	var parentTag = object.parentNode;
	var nextsib = object;
	do{
				if(nextsib){
					if( nextsib.nodeName == "#text"||(nextsib.nodeName=="SPAN" &&  nextsib.id != "skipMe" )|| nextsib.nodeName == "BR" || (nextsib.nodeName == "DIV" && nextsib.id=="errorMsgText" )){
							var temp = nextsib;
							nextsib= nextsib.nextSibling;
						    parentTag.removeChild(temp);
					}else{
						nextsib= nextsib.nextSibling;
					}
				}
			}while(nextsib);

}
function customOnsubmit(){
			return true;
}
function showingWatingDiv(menucontents, obj, tipwidth){

	if ((ie||ns6) && document.getElementById("hintbox")){
		dropmenuobj=document.getElementById("hintbox")
		menucontents="<div style=''><img src='/media/images/ajax-loader-available.gif'/></div>";
		dropmenuobj.innerHTML=menucontents
		dropmenuobj.style.left=dropmenuobj.style.top=-500
		if (tipwidth!=""){
			dropmenuobj.widthobj=dropmenuobj.style
			dropmenuobj.widthobj.width=tipwidth
		}
		dropmenuobj.x=getposOffset(obj, "left") 
		dropmenuobj.y=getposOffset(obj, "top")
		dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth-10+"px" ;
		dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px";
		dropmenuobj.style.visibility="visible"
		//obj.onfocus=hidetip
	}
}

function addNew(objec){
	createhintbox();
	showhint( 'Capitalization matters. Use 4 to 100 characters without space. You may use your e-mail id as username', objec.id, '190px');
	//alert("hi");
	//hidetip();
	//removeHelp(objec);
	//addError(objec,"Invalid email address. Please check your email address and try again.")
}
function showhint(menucontents, obj, tipwidth){
		 showhint(menucontents, obj, tipwidth,0);
}
function showhint(menucontents, obj, tipwidth,size){
	
	if ( obj.tagName.toString().toLowerCase().indexOf('input') > -1 || obj.toString().indexOf('HTMLInputElement') > -1 ) {
		if( rm_trim(obj.value).toString().length > size ) {
			return;
		}
	} else if ( obj.tagName.toString().toLowerCase().indexOf('select') > -1  || obj.toString().indexOf('HTMLSelectElement') > -1 ) {
		if ( obj.selectedIndex > size ) {
			return
		}
	} else if( obj.tagName.toString().toLowerCase().indexOf('textarea') > -1 || obj.toString().indexOf('HTMLTextAreaElement') > -1) {
		if ( rm_trim(obj.value).toString().length > size ) {
			return ;
		}
	} else { alert('no match found'); }
	if ((ie||ns6) && document.getElementById("hintbox")){
		dropmenuobj=document.getElementById("hintbox")
		menucontents="<div id=new_>"+ menucontents +"<div style='position:absolute; left:-9px; top:5px;'><img src='/media/images/arrow2.gif' /></div></div>"
		dropmenuobj.innerHTML=menucontents
		dropmenuobj.style.left=dropmenuobj.style.top=-500
		if (tipwidth!=""){
			dropmenuobj.widthobj=dropmenuobj.style
			dropmenuobj.widthobj.width=tipwidth
		}
		dropmenuobj.x=getposOffset(obj, "left")
		dropmenuobj.y=getposOffset(obj, "top")
		dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px";
		dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px";
		dropmenuobj.style.visibility="visible"
		//obj.onfocus=hidetip
	}
}
 function createhintbox(){
	var divblock=document.createElement("div");
	divblock.setAttribute("id", "hintbox");
	divblock.setAttribute("class", "hintbox");
	divblock.setAttribute("className", "hintbox");
	document.body.appendChild(divblock);
}

function rm_trim(inputString)
{
        if (typeof inputString != "string") { return inputString; }

        var temp_str = '';
        temp_str = inputString.replace(/[\s]+/g,"");
        if(temp_str == '')
                return "";

        var retValue = inputString;
        var ch = retValue.substring(0, 1);
        while (ch == " ")
        {
                retValue = retValue.substring(1, retValue.length);
                ch = retValue.substring(0, 1);
        }
        ch = retValue.substring(retValue.length-1, retValue.length);
        while (ch == " ")
        {
                retValue = retValue.substring(0, retValue.length-1);
                ch = retValue.substring(retValue.length-1, retValue.length);
        }
        while (retValue.indexOf("  ") != -1)
        {
          retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
        }
        return retValue;
}

