var gs_error_placeholder;
var gs_message_placeholder;
$(document).ready(function() {
    //init_resolution();
    showErrors();
    showMessages();
   /** 
    var so = new SWFObject("/upload/admin/banners/840_60.swf", "flash", "840px", "60px", "8");
    so.addParam("quality", "high");
    so.addParam("wmode", "transparent");
    so.addParam("salign", "t");
    so.write ("top-banner");
    so = new SWFObject("/upload/admin/banners/130x90banner.swf", "flash", "130px", "90px", "8");
    so.addParam("quality", "high");
    so.addParam("wmode", "transparent");
    so.addParam("salign", "t");
    so.write ("right-banner");*/
    
    // if not logged in
    //if(document.getElementById('login_form'))
      //  $('#login_form').after("<script type=\"text/javascript\">$('#txt_user_login').focus();</script>");
});

/**
 * Shows the supplied layer
 * @param id ID of the layer to show
 */
function showLayer(id){
    layer = document.getElementById(id);
    if(layer){
        layer.style.display = 'block';
    }
    else{
        alert('Layer: <'+id+'> not exists!');
    }
}

/**
 * Hides the supplied layer
 * @param id ID of the layer to hide
 */
function hideLayer(id){
    layer = document.getElementById(id);
    if(layer){
        layer.style.display = 'none';
    }
    else{
        alert('Layer: <'+id+'> not exists!');
    }
}

/**
 * Shows or hides the supplied layer
 * @param id ID of the layer to switch
 */
function switchLayer(id){
    layer = document.getElementById(id);
    if(layer){
        if(layer.style.display == 'block'){
            hideLayer(layer.id);
        }
        else{
            showLayer(layer.id);
        }
    }
    else{
        alert('Layer: <'+id+'> not exists!');
    }
}

/**
 * Shows the error layer on top containing the errors if there is content in it, otherwise hide it.
 */
function showErrors(){
    box = document.getElementById('err_box');
    if(box.innerHTML != ''){
        box.style.display = 'block';
    }
    else{
        box.style.display = 'none';
    }
}

/**
 *  Shows the message layer on top containing the messages if there is content in it, otherwise hide it.
 */
function showMessages(){
    box = document.getElementById('msg_box');
    if(box.innerHTML != ''){
        box.style.display = 'block';
    }
    else{
        box.style.display = 'none';
    }
}

function validateForm(id){
    f = document.getElementById(id);
    inputs = f.getElementsByTagName('input');
    names = [];
    values = [];
    for(i=0;i<inputs.length;i++){
        names[i] = inputs[i].name;
        values[i] = inputs[i].value;
    }
    
    textareas = f.getElementsByTagName('textarea');
    var l = names.length;
    for(i=0;i<textareas.length;i++){
        names[l + i] = textareas[i].name;
        values[l + i] = textareas[i].value;
    }

    var selects = f.getElementsByTagName('select');
    l = names.length;
    for(i=0;i<selects.length;i++){
        names[l + i] = selects[i].name;
        values[l + i] = selects[i].value;
    }
    
    req = buildRequest(names, values);
    doRequest(req, '/validate.php', 'manageErrors', false);
    flag = document.getElementById('to_submit');
    if(flag.value == '1'){
        return true;
    } else {
        return false;
    }
}

function manageErrors(obj){
    if(obj.error == undefined){
        if(obj.ok == '1'){
            var flag = document.getElementById('to_submit');
            flag.value = '1';
            clearErrors();
        } else {
            var err = '';
            for(var e in obj.errors)
                err += obj.errors[e]+'<br />';
            setError(err);
        }
    } else{
        alert("Error: "+obj.ok);
    }
}

function setError(sError){
    var ebox = document.getElementById('err_box');
    ebox.innerHTML = sError;
    ebox.style.display = 'block';
    ebox.scrollIntoView(true);
}

function populateErrors(aErrors){
    var ebox = document.getElementById('err_box');
    ebox.innerHTML = '';
    for(var i=0;i<aErrors.length;i++)
        ebox.innerHTML += aErrors[i]+"<br />";
    ebox.style.display = 'block';
    ebox.scrollIntoView(true);
}

function clearErrors(){
    var ebox = document.getElementById('err_box');
    ebox.innerHTML = '';
    ebox.style.display = 'none';

}

function init_resolution(){
    if(! readCookie('users_resolution')){
    	createCookie('users_resolution', screen.width + "x" + screen.height, 60);
    	location.reload();
    }
    if(screen.width <= 1024)
		$('#container').addClass("container-left");
	else
		$('#container').addClass("container-center");
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function showTemplate(){
    tpl_ph = document.getElementById('template_placeholder');
    corp_ph = document.getElementById('corporate_placeholder');
    tpl_form = document.getElementById('template_form');
    corp_form = document.getElementById('corporate_form');
    tpl_text = document.getElementById('template_text');
    corp_text = document.getElementById('corporate_text');

    corp_ph.innerHTML = corp_text.innerHTML;
    if(tpl_ph.innerHTML == tpl_text.innerHTML){
      tpl_ph.innerHTML = tpl_form.innerHTML;
    } else {
      tpl_ph.innerHTML = tpl_text.innerHTML;
    }

}

function showCorporate(){
    tpl_ph = document.getElementById('template_placeholder');
    corp_ph = document.getElementById('corporate_placeholder');
    tpl_form = document.getElementById('template_form');
    corp_form = document.getElementById('corporate_form');
    tpl_text = document.getElementById('template_text');
    corp_text = document.getElementById('corporate_text');

    tpl_ph.innerHTML = tpl_text.innerHTML;
    if(corp_ph.innerHTML == corp_text.innerHTML){
      corp_ph.innerHTML = corp_form.innerHTML;
    } else {
      corp_ph.innerHTML = corp_text.innerHTML;
    }

} 


function showDescription(sel){
    var c = document.getElementById('description_container');
    var divs = c.getElementsByTagName('div');
    for(i=0;i<divs.length;i++){
        if(divs[i].className == 'dbox') divs[i].style.display = 'none';
        if(divs[i].id == 'dbox_'+sel.value) divs[i].style.display = 'block';
    }
}

function showWeeks(sID,sDuration){
    var pd = document.getElementById('pd_duration');
    var c = document.getElementById('pd_container');
    c.style.display = 'none';
    pd.innerHTML = '';
    for(i=1;i<=sDuration;i++){
        var opt = document.createElement('option');
        opt.value = i;
        opt.text = i;
        opt.innerText = i;
        pd.appendChild(opt);
    }
    if(sDuration > 0) c.style.display = 'block';
}

function dateIsTodayOrFuture(){
    var d = document.getElementById('start_date_day').value;
    var m = document.getElementById('start_date_month').value;
    var y = document.getElementById('start_date_year').value;
    
    var data = new Date(parseInt(y,10), parseInt(m,10)-1,parseInt(d, 10), 23, 59, 59).getTime();
    var today = new Date().getTime();
    var res = data >= today;
    if(!res){
        _getErr('dateistodayorfuture');
       setError(gs_error_placeholder);
    }
    return res;
}


function populatePullDown(pd, opts){
    pd.innerHTML = '';
    for(o in opts){
        var opt = document.createElement('option');
        opt.value = opts[o];
        opt.text = opts[o];
        opt.innerText = opts[o];
        pd.appendChild(opt);
    }
}



function _getErr(nm,args){
    if(args == undefined) args = '';
    var req = buildRequest(['nm','args'],[nm,args]);
    doRequest(req,'../js/ajax/server/getErrors.php','_returnErr',false);
}

function _getMsg(nm,args){
    var keys = ['nm'];
    var values = [nm];
    if(typeof args != 'undefined'){
        for(var i=0;i<args.length;i++){
            keys.push('args[]');
            values.push(args[i]);
        }
    }
    var req = buildRequest(keys,values);
    doRequest(req,'../js/ajax/server/getMessages.php','_returnMsg',false);
}

function _returnErr(obj){
    if(!obj.server_error){
        clearErrors();
        gs_error_placeholder = obj.errortext;
    } else{
        setError(obj.server_error);
    }
}

function _returnMsg(obj){
    if(!obj.server_error){
        clearErrors();
        gs_message_placeholder = obj.msgtext;
    } else{
        setError(obj.server_error);
    }
}

function checkEmails(id1, id2){
    var em1 = document.getElementById(id1);
    var em2 = document.getElementById(id2);
    if( typeof em1 != 'undefined' && typeof em2 != 'undefined' ){
        if(!matchEmails(em1, em2)){
          _getErr('notmatchingemails', '');
          setError(gs_error_placeholder);
          return false;
        } else return true;
    } else return false;
}

function matchEmails(em1, em2){
    return (em1.value == em2.value);
}

function maxlength(obj, s_maxlen){
    if(obj.value.length > s_maxlen) obj.value = obj.value.substr(0, s_maxlen);
}

function showCharCount(obj, board){
    var b = document.getElementById(board);
    b.innerHTML = obj.value.length;
}

function promptBox(link){
    var l = link.href;
    _getMsg('getpermalink');
    prompt(gs_message_placeholder, l);
    return false;
}
