function clearSeq() {
    var f = this.getAttribute("fieldToClear");     
    if(f) {
        f = f.split(",");
        for(i = 0; i < f.length; i++) {	              
            if($(f[i])) $(f[i]).value="";            
        }
    }   
        
    /*f = f ? $(f) : null;
    if(f) f.value="";*/
}


function getUrlCompForCheckedField(elem)
{
    var url = "";
	var val = elem.checked ? "on" : "off";
	url = "&" + elem.name + "=" + val;
	
	return url;
	
}

function getUrlCompForRadioCheckboxField(elementArr)
{
    var url = "";
    for(i = 0; i < elementArr.length; i++) {	    
        url += getUrlCompForCheckedField(elementArr[i]);	    
	}
	return url;
	
}


function getUrlCompForEntryField(ID)
{
    var url = "";
    if($(ID).value != "") {
        url = "&" + $(ID).name + "=" + escape($(ID).value);
    }
    return url;
}

function getUrlCompForOptionsField(ID)
{
    var url = "&" + $(ID).name + "=" + $(ID)[$(ID).selectedIndex].value;    
    return url;
}		
//cannot set border attribute in ie
function getSelectBorderElem(selElem)
{
    var par = utils.getParent(selElem);
   // alert("selElem.offsetWidth=" + selElem.offsetWidth + " selElem.style.width=" + selElem.style.width);
    //if(selElem.offsetWidth) par.style.width = selElem.offsetWidth;
    return par;
}


function diffFromDefault(elem)
{
    var currentVal;    
    var defVal = elem.getAttribute("defVal"); //Default value    
    var ret = 0;
    
    var elShowDiff = elem;
    
    //class "par" means that parent elemnt should be highlighted to show diff
    if(utils.hasClass(elem,"par")) {
        elShowDiff = utils.getParent(elem);
    }    
    if(!elem.type) {//div element for example
        //Check if <parent> elem has "hide" class
        if(utils.hasClass(elShowDiff, "hide")) {
            currentVal = "hide";
        }
        else {
            currentVal = "show";
        }   
        elShowDiff = elem;
    }
    else if(elem.type == "select-one") {
        currentVal = elem[elem.selectedIndex].value;
        //If Default value is not specified - the first one in the selection list is the default          
        if(!defVal) defVal = elem[0].value;  
        if (navigator.userAgent.match(/ie/i) && !utils.hasClass(elem,"par")) {            
            //cannot set border attribute in ie
            //will highlight the border of parent elemnt with the class ="sel"
            elShowDiff = utils.getParent(elem);
        }
    }
    else if(elem.type == "checkbox") {        
        if(elem.checked == true) currentVal = "checked"
        else  currentVal = "unchecked";        
    }
    else {
        currentVal = elem.value;
    }
    
    
    var numdiff = parseInt($("NUM_DIFFS").value,10);    
    var optsNumDiff = parseInt($("NUM_OPTS_DIFFS").value,10);    
    if(defVal != currentVal) {        
        if(!utils.hasClass(elShowDiff, "nondef")) {        
            utils.addClass(elShowDiff, "nondef");            
            numdiff++;            
            if(utils.hasClass(elem,"opts")) optsNumDiff++;        
        }     
        ret = 1;        
    }
    else {        
        if(utils.hasClass(elShowDiff, "nondef")) {
            utils.removeClass(elShowDiff, "nondef");        
            //alert("noDiff-" + elem.id);
            if(numdiff != 0) numdiff--;       
            if(utils.hasClass(elem,"opts")) optsNumDiff--; 
        }         
        ret=0;
    }
    $("NUM_DIFFS").value = numdiff;       
    $("NUM_OPTS_DIFFS").value = optsNumDiff;       
    if(numdiff > 0) {    
        $("diffMes").style.display = "inline";           
        if ($("diffMesTop")) $("diffMesTop").style.display = "inline";           
    }
    else {
        $("diffMes").style.display = "none";           
        if ($("diffMesTop")) $("diffMesTop").style.display = "none";           
    }      
    //alert(elem.id + " " + $("NUM_DIFFS").value);
    return ret;    
}



function checkAll(name,check)
{
    //var elements = cssQuery("[class='newwin']");  
    var elements = cssQuery("[name='" + name + "']");      
    for (var j = 0; j < elements.length; j++) {    
      elements[j].checked = check;      
      diffFromDefault(elements[j]);
    }
}