var ctlflag=0;

//scroll portofolio
function scrollit(){
    document.getElementById('thediv').scrollLeft-=ctlflag;
    if (ctlflag!=0){
        setTimeout('scrollit()',10);
    }
}

function selectList(myBox) {
    var selection = document.getElementById(myBox);
    for(var i = 0; i < selection.options.length; i++) {
    if (selection.options[i] != null)
    selection.options[i].selected = true;
    }
    return true;
}


//hover portofolio img
function hover(img){
    document.getElementById('img').src='/images/img'+img+'.jpg';
}

/* V A L I D A T E    F O R M */
function validateForm(validate) {
    var curr_field, fieldName, filterList, element, errno, tvalue, len;
    var missinginfo = '';
    var matchEmail =/email/i
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    var matchField = /([a-zA-Z0-9]{1}[\w_]+[a-zA-Z0-9]{1})\[([\S]{0,})\]/i

    /*filters used*/
    var filter1 = /len/i //maximum length
    var filter2 = /numeric/i //numeric fields

    var checkList = validate.split(",");
    for( var z=0; z < checkList.length; z++ ) {
        //get the field name
        fieldName = checkList[z].replace(matchField,"$1");
        //get the field criterias
        curr_field = checkList[z].replace(matchField, "$2");
        element = document.getElementById(fieldName);
        
        //check if this field is the email field to use different filter
        if(matchEmail.test(fieldName)) {
            if( !filter.test(element.value) ) { errno = 3;  } else { errno = 0;  }
        } else {
            //check if field is blank
            if( element.value == '' ) {
                errno = 1;
            } else {
                filterList = curr_field.split(";");
                for( var f=0; f < filterList.length; f++ ) {
                    
                    tvalue = filterList[f].split("=");
                    if(filter1.test(filterList[f])) {//check field length
                        if(element.value.length > tvalue[1] ) { errno = 2; len=tvalue[1]; } else { errno = 0; }
                    } else if(filter2.test(filterList[f])){//check if field is numeric
                        if(!IsNumeric(element.value)) { errno = 4; } else { errno = 0; }
                    }
                }
            }
        }
        //clear underscores from field name
        fieldName = fieldName.replace(/[_' ']/g," ");

        //ERRORS messages type
        if(errno==0 || !errno){ //field is valid
            element.style.backgroundColor='#FFFFFF';
        }else if(errno==1) {//field is blank
            missinginfo += '\n - '+ capitalize(fieldName)+ ' is required';
            element.style.backgroundColor='#E3F0FF';
        }else if(errno==2) {//max characters permitted
            missinginfo += '\n - '+ capitalize(fieldName)+ ' Max. Characters permitted = '+len;
            element.style.backgroundColor='#E3F0FF';
        }else if(errno==3) {//invalid email
            missinginfo += '\n - '+ capitalize(fieldName)+ ' is not valid';
            element.style.backgroundColor='#E3F0FF';
        }else if(errno==4) {//numeric fields
            missinginfo += '\n - '+ capitalize(fieldName)+ ' is a numeric field';
            element.style.backgroundColor='#E3F0FF';
        }
    }
    if (missinginfo != '') {
        missinginfo = '_____________________________\n' + 'Please fill in correctly the following information:\n' +
        missinginfo + '\n_____________________________';
        alert(missinginfo);
        return false;
    } else {
        return true;
    }
    return false;
}

/*C O N V E R T   F I R S T   L E T T E R   T O    U P P E R C A S E*/
function capitalize(str) {
  var arr=str.split("");
  arr[0]=arr[0].toUpperCase();
  var s=arr.join("");
  return s;
}

/*C H E C K   I F   A   F I E L D   I S   N U M E R I C*/
function IsNumeric(sText){
    var ValidChars = "0123456789.";
    var IsNumber=true;
    var Char;


    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
   return IsNumber;

}

function ajax(fragment_url,element_id) {

    var element = document.getElementById(element_id);

    document.body.style.cursor = "progress";
    
    element.innerHTML = '<font size=1>Searching<img src="/images/indicator.gif"></font>';
    
    if (window.XMLHttpRequest) { //for all browers but IE
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) { //for IE
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    }
    
    xmlhttp.open("GET", fragment_url+ '&r='+Math.random());
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.body.style.cursor = "auto";
            element.innerHTML = (unescape(xmlhttp.responseText)).replace(/\+/gi," ");
        }
    }
    xmlhttp.send(null);
}

function hide(action,tbl){
    var element = document.getElementById('b'+tbl);
    ctlflag=2;scrollit();
    
    if(action == 0)
        element.style.display='none';
    
    if(action == 1)
        element.style.display='inline';
}

function swap(elem,value){
    document.getElementById(elem).src = '/images/'+value+'.gif';
}


/* T E X T   C O U N T */
function textCounter(field, countfield, maxlimit) {
    if (field.value.length > maxlimit) {
        field.value = field.value.substring(0, maxlimit);
    } else { 
        countfield.value = maxlimit - field.value.length;
    }
}


function cycle() {
    initImage();
    ajax('/index.php?action=popFeatured','loadFeatc');
    window.setTimeout('cycle();',7000); 
}
function initImage() {
    var imageId = 'fimg';
    var image = document.getElementById(imageId);
    setOpacity(image, 0);
    image.style.visibility = 'visible';
    fadeIn(imageId,0);
}
function setOpacity(obj, opacity) {
    opacity = (opacity == 100)?99.999:opacity;
    
    // IE/Win
    obj.style.filter = "alpha(opacity:"+opacity+")";
    
    // Safari<1.2, Konqueror
    obj.style.KHTMLOpacity = opacity/100;
    
    // Older Mozilla and Firefox
    obj.style.MozOpacity = opacity/100;
    
    // Safari 1.2, newer Firefox and Mozilla, CSS3
    obj.style.opacity = opacity/100;
}
function fadeIn(objId,opacity) {
    if (document.getElementById) {
        obj = document.getElementById(objId);
        if (opacity < 100) {
          setOpacity(obj, opacity);
          opacity += 10;
          window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 170);
        }
    }
}

//------------------------------------------------
// MOVING ITEMS FROM ONE LIST TO ANOTHER
//------------------------------------------------
function MoveOption(objSourceElement, objTargetElement)
     {
   var aryTempSourceOptions = new Array();
   var aryTempTargetOptions = new Array();
   var x = 0;
   
   //looping through source element to find selected options
   for (var i = 0; i < objSourceElement.length; i++) {
    if (objSourceElement.options[i].selected) {
     //need to move this option to target element
     var intTargetLen = objTargetElement.length++;
     objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;
     objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value;
    }
    else {
     //storing options that stay to recreate select element
     var objTempValues = new Object();
     objTempValues.text = objSourceElement.options[i].text;
     objTempValues.value = objSourceElement.options[i].value;
     aryTempSourceOptions[x] = objTempValues;
     x++;
    }
   }

   //sorting and refilling target list
   for (var i = 0; i < objTargetElement.length; i++) {
    var objTempValues = new Object();
    objTempValues.text = objTargetElement.options[i].text;
    objTempValues.value = objTargetElement.options[i].value;
    aryTempTargetOptions[i] = objTempValues;
   }

   aryTempTargetOptions.sort(sortByText);

   for (var i = 0; i < objTargetElement.length; i++) {
    objTargetElement.options[i].text = aryTempTargetOptions[i].text;
    objTargetElement.options[i].value = aryTempTargetOptions[i].value;
    objTargetElement.options[i].selected = false;
   }
   
   //resetting length of source
   objSourceElement.length = aryTempSourceOptions.length;
   //looping through temp array to recreate source select element
   for (var i = 0; i < aryTempSourceOptions.length; i++) {
    objSourceElement.options[i].text = aryTempSourceOptions[i].text;
    objSourceElement.options[i].value = aryTempSourceOptions[i].value;
    objSourceElement.options[i].selected = false;
   }
     }

     function sortByText(a, b)
     {
   if (a.text < b.text) {return -1}
   if (a.text > b.text) {return 1}
   return 0;
     }

     function selectAll(objTargetElement)
     {
   for (var i = 0; i < objTargetElement.length; i++) {
    objTargetElement.options[i].selected = true;
   }
   return false;
  }
  
/*T A B S*/
function tabs(selectedTab,numberTabs){
    for( var i=1; i<=numberTabs; i++ ){
        if(i== selectedTab) {
            document.getElementById('tab'+i).style.display = 'inline';
            document.getElementById('Amenu'+i).className='AmenuHover';
        } else {
            document.getElementById('tab'+i).style.display = 'none';
            document.getElementById('Amenu'+i).className='Amenu';
        }
    }
}



function valorradio1(form,nombre){
    var objeto=eval('window.document.'+form+'.'+nombre);
    return valorradio2(objeto)
}
function valorradio2(objeto){
    for (var i=0;i<objeto.length;i++)
    {
    if (objeto[i].checked)
    return objeto[i].value; 
    }
    return null
}


/*PREVIEW*/
function preview(img, title, action) {
    var myDiv = document.getElementById('preview');
    var searchbox = document.getElementById('searchbox');
    
    if(action == 1) {
        myDiv.innerHTML = "<div class='gen_lef' style='margin-bottom:3px;'><a href='#' onClick='preview(0,0)'><img src='/images/delete.gif'></a>&nbsp;&nbsp;<b>"+title+"</b></div><a href='#' onClick='preview(0,0)' alt='Click to Close' title='Click to Close'><img src='"+img+"'></a>";
        searchbox.style.display = 'none';
        myDiv.style.display = 'inline';
    } else {
        searchbox.style.display = 'inline';
        myDiv.style.display = 'none';
    }
    return false;
}


//OPEN POP-UP ON CENTER OF SCREEN
function popup(page,w,h,scroll) {
    var winl = (screen.width-w)/2;
    var wint = (screen.height-h)/2;

    if (winl < 0) winl = 0;
    if (wint < 0) wint = 0;
    scroll = scroll ? ',scrollbars=yes' : '';
    windowprops = "resizable=yes,height="+h+",width="+w+",top="+ wint +",left="+ winl+scroll;
    var mypop = window.open(page, "IT-Design", windowprops);
    mypop.focus();
}

