/**
 * yanoo @ 02.02.2010
 * Kontakt form added
 */
$(document).ready(function(){
    /**
     * handling errors at contact form submiting
     *
     * @param {Object} '#contact_form .noempty'
     */
    $('#contact_form').submit(function(){
        var ret = true;
        var noempty = $('#contact_form .noempty'); // fields that cannot be empty
        var len = 0;
        $.each(noempty, function(key, value) {
            len = ($(this).val()).length;
            if(len < 3) {
                console.debug(value);
                console.debug(value.type);
                ret = false;
                $(this).siblings('.error').html('Wypełnij to pole.');
            }

            // @todo: email validation

            if (value.type == 'textarea' && len > 500) {
                $(this).siblings('.error').html('Przekroczono dopuszczalną ilość znaków o ' + (len-500) + '!');
            }
        });

        return ret;
    });
});

function new_win (href,x,y){
    window.open(''+href, '', 'location=no toolbar=no, menubar=no, scrollbars=yes, resizable=yes, height='+y+', width='+x+', left=20, top=20');
    window.top;
}

function calendar_win (href,name,x,y){
    window.open(''+href, ''+name, 'location=yes toolbar=no, menubar=no, scrollbars=yes, resizable=no, height='+y+', width='+x+', left=20, top=20');
    window.top;
}

function correctDate(){

    year_1 = parseInt(document.getElementById('pickup_Year').value, 10);
    year_2 = parseInt(document.getElementById('return_Year').value, 10);
    day_1 = parseInt(document.getElementById('pickup_Day').value, 10);
    day_2 = parseInt(document.getElementById('return_Day').value, 10);
    month_1 = parseInt(document.getElementById('pickup_Month').value, 10);
    if (year_2 == year_1) {

        if (day_1 > day_2) {
            if (month_1 < 9) newValue = '0'+(month_1 + 1);
            else newValue = month_1 + 1;
            //alert(newValue);
            document.getElementById('return_Month').value = newValue;
        }
    }
    if (year_2 > year_1) {
        document.getElementById('return_Month').value = '01';
    }
}

/*
* AJAX stuff
*/
function alertContents(http_request) {
        if (http_request.readyState == 4) {
        //hideBob(elemName);
                if (http_request.status != 200) {
                    //document.all['offer_found'].innerHTML = http_request.responseText;
            //window.clear;
            //document.write(http_request.responseText);
            alert('There was a problem with the request...');
                }
        }

}

// show response
function alertContentsShow(http_request, url2) {
    if (http_request.readyState == 4) {
    //hideBob(elemName);
        if (http_request.status == 200) {
                //document.all['offer_found'].innerHTML = http_request.responseText;
        //window.clear;
        //document.write(http_request.responseText);
        window.clear;
        window.location.href=(url2);
        }
    else {
                alert('There was a problem with the request...');
        //return false;
            }
    }

}

function makeRequest(url) {
        var http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/plain');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = function() { alertContents(http_request); };
        http_request.open('GET', url, true);
        http_request.send(null);
}

function makeRequestShow(url, url2) {
        var http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/plain');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = function() { alertContentsShow(http_request, url2); };
        http_request.open('GET', url, true);
        http_request.send(null);
}
/*
* show in element based on gibed id
*/
function makeRequestShowInElem(url, elemName) {
        var http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/plain');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = function() { alertContentsShowInElem(http_request, elemName); };
        http_request.open('GET', url, true);
        http_request.send(null);
}

function alertContentsShowInElem(http_request, elemName) {
    var c = document.getElementById(elemName);
    if (http_request.readyState == 4) {
    //hideBob(elemName);
    if (http_request.status == 200) {
        // show element and receied value
        /*var html_str_page = '<table width="100%" class="offer_checker" width=100><tr>';
        html_str_page += http_request.responseText;
        html_str_page += '</td></tr></table>';*/
        c.innerHTML = http_request.responseText;
    }
    else {
        alert('There was a problem with the request...');
        //return false;
        }
    }
}

/*
* Finding position of the object
*/
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 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;
}
/*
* Hiding bob
*/
function hideBob(elemName){
    if (document.getElementById){
        var c = document.getElementById(elemName);
        c.style.display="none";
    }
}
/*
* hiding blocks
*/
function blockdisplay(idCal,i) {
    if (document.getElementById){
        if (document.getElementById(idCal+i)) {
            for ( j = 1; j < 1000; j++ ) {
                if (document.getElementById(idCal + j)) {document.getElementById(idCal + j).style.display = 'none';}
                else {j = 1000;}
            }
            if (i) {document.getElementById(idCal+i).style.display = 'block';}
        }
    }
}
/*
* disabling all elements
*/
function disableForm(){
   var arrElements = new Array('input','select', 'checkbox', 'a');
   for(id in arrElements){
    emType = arrElements[id];
        var inputs = document.getElementsByTagName(emType);
        for(inp in inputs){
            var elem = document.getElementsByTagName(emType)[inp];

            var type = elem.type;
            /*if(type == 'hidden' || type == 'image' ||type == 'radio' || type == 'submit' || typeof type == 'undefined') continue;


        if(type == 'a') {
            if (elem.style.visibility=='visible'){
                elem.style.visibility="hidden";
            } else elem.style.visibility=='visible';
        }
*/
        var name = elem.name;
        if(name == '') continue;
/*
            var value = elem.value;

            var start = name.lastIndexOf("[") + 1;
            var ende = name.lastIndexOf("]") - start;
            var checkType = name.substr(start,ende);
            if(checkType == '') checkType = name;

            var chck = checkInput(elem,name,checkType,value);
            if(!chck){
                error = true;
*/
        if (elem.disabled==false){
            elem.disabled=true;
        } else elem.disabled=false;
            }
        }
}

var olIe4 = (document.all) ? true : false;
var o3_allowmove=1;
var olNs4 = (navigator.appName=='Netscape' && parseInt(navigator.appVersion) == 4);
var elemToMove;

function determineBrowser(){
    document.getElementById('browserId').value = navigator.appName;
}

function _mouseSpy(elemName) {
    elemToMove = elemName;
    capExtent = document;
    var fN, str = '', l, k, f, wMv, sS, mseHandler = mouseTracker;
    var re = /function[ ]*(\w*)\(/;

    wMv = (!olIe4 && window.onmousemove);
    if (document.onmousemove || wMv) {
        if (wMv) capExtent = window;
        f = capExtent.onmousemove.toString();
        fN = f.match(re);
        if (fN == null) {
            str = f+'(e); ';
        } else if (fN[1] == 'anonymous' || fN[1] == 'mouseTracker' || (wMv && fN[1] == 'onmousemove')) {
            if (!olOp && wMv) {
                l = f.indexOf('{')+1;
                k = f.lastIndexOf('}');
                sS = f.substring(l,k);
                if ((l = sS.indexOf('(')) != -1) {
                    sS = sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,'');
                    if (eval("typeof " + sS + " == 'undefined'")) window.onmousemove = null;
                    else str = sS + '(e);';
                }
            }
            if (!str) {
                olCheckMouseCapture = false;
                return;
            }
        } else {
            if (fN[1]) str = fN[1]+'(e); ';
            else {
                l = f.indexOf('{')+1;
                k = f.lastIndexOf('}');
                str = f.substring(l,k) + '\n';
            }
        }
        str += 'mouseTracker(e); ';
        mseHandler = new Function('e', str);
    }

    capExtent.onmousemove = mseHandler;
    if (olNs4) capExtent.captureEvents(Event.MOUSEMOVE);
    style="cursor:text;position:absolute;left:-100px;top:-100px;"
}

function mouseTracker(e)
{
    var ieType=(typeof window.innerWidth != 'number');
    var ofx=-3;
    var ofst=5;
    var elem = document.getElementById(elemToMove);
    elem.style.visibility="visible";
    var msy = (!ieType)?window.pageYOffset:0;
    var mouseRef=document.getElementById("hideMouse");

    if (!e) e = window.event;
    if (typeof e.pageY == 'number'){
        mouseY = e.pageY + ofst - msy;;
        mouseX = e.pageX + ofst;
    }
    else{
        mouseY = e.clientY + ofst - msy;;
        mouseX = e.clientX + ofst;
    }
    //elem.innerHTML = '<p class=tdtop>kjhfjdhfkjsdhfkhfsjdhfjfhskdh</p>';
    elem.style.left = mouseX;
    elem.style.top = mouseY;

    if (e) {
        mouseRef.style.left=e.pageX-3+"px";
        mouseRef.style.top=e.pageY-8+"px";
    }
    else {
        mouseRef.style.left=event.x-5+"px";
        mouseRef.style.top=event.y-10+"px";
    }
}

function mousePosition(){
    e = window.event;
    if (typeof e.pageY == 'number'){
        mouseY = e.pageY + ofst - msy;;
        mouseX = e.pageX + ofst;
    }
    else{
        mouseY = e.clientY + ofst - msy;;
        mouseX = e.clientX + ofst;
    }
    //elem.innerHTML = '<p class=tdtop>kjhfjdhfkjsdhfkhfsjdhfjfhskdh</p>';
    //elem.style.left = mouseX;
    //elem.style.top = mouseY;
/*
    if (e) {
        mouseRef.style.left=e.pageX-3+"px";
        mouseRef.style.top=e.pageY-8+"px";
    }
    else {
        mouseRef.style.left=event.x-5+"px";
        mouseRef.style.top=event.y-10+"px";
    }
*/
    var dimensions = new Array(mouseX, mouseY);
    return dimensions;
}

// add an attribute to an XHTML Element, elem is the element and will be returned modified
function addAttribute(elem,attribute,value){
    if(typeof elem != 'object'){
        return false;
    }
    var Attr = document.createAttribute(attribute);
    Attr.nodeValue = value;
    elem.setAttributeNode(Attr);
    return elem;
}

/**
* Time counter
*/
var K, width, Sk, Mn, limit;

function timeCounter(){
    K=100;
    Sk = parseInt(document.getElementById('_Sk').value);
    Mn = parseInt(document.getElementById('_Mn').value);
    limit = parseInt(document.getElementById('_limit').value);
    //width = parseInt(document.getElementById('_width').value);
    width = 0;
    if (document.getElementById('session_progress_bar').value == "1"){
        timer();
    }
}
/**
* write given message on the screen
*/
function writeReqMsg(msg){
    document.writeln(msg);
}

// limit 180 s
function timer() {

    timeNow = new Date();
    if (timeNow.getSeconds()!=K){
        K=timeNow.getSeconds();
        if (Sk==0) {
            Sk=60;
            Mn--;
        }
        if (Sk<10) Sk="0"+Sk;
        document.getElementById("expSess").innerHTML = Mn+":"+Sk;

        Sk--;
        width++;
        if (Sk < 0 || Mn < 0) width=limit+1;
        document.getElementById('counterPic').style.width = (100-parseInt((width/limit)*100))+'%';
        document.getElementById('_Sk').value = Sk;
        document.getElementById('_Mn').value = Mn;
        document.getElementById('_width').value = width;
    }

    if (width < limit){
        if (Sk == 10 && Mn ==0){
            blinkerOff();
        }
        setTimeout("timer()",1)
    }
    else {
        xajax_sessExpired();
    }
}


function blinkerOn(){
    document.getElementById("expireCounterTable").style.background="#ff3939";
    setTimeout("blinkerOff()",1200);
}

function blinkerOff(){
    document.getElementById("expireCounterTable").style.background="";
    setTimeout("blinkerOn()",1200);
}


function addPlace(buttonNameToSet, dropDownName, dropDownCountry, dropDownCity){
    buttonValue = document.getElementById(buttonNameToSet).value;

    var pickupSelects = document.getElementById(dropDownCountry).options;
    for(var i=0; i < pickupSelects.length; i++ ){
        if (pickupSelects[i].value == document.getElementById(dropDownCountry).value) {
            document.getElementById(buttonNameToSet).value = pickupSelects[i].label+' ';
            break;
        }
    }

    buttonValue = document.getElementById(buttonNameToSet).value;
    var pickupSelects = document.getElementById(dropDownCity).options;
    for(var i=0; i<pickupSelects.length; i++ ){
        if (pickupSelects[i].value == document.getElementById(dropDownCity).value) {
            document.getElementById(buttonNameToSet).value = buttonValue+pickupSelects[i].label;
            break;
        }
    }
    if (document.getElementById(dropDownName).value != 'ALL'){
        var pickupSelects = document.getElementById(dropDownName).options;
        for(var i=0; i<pickupSelects.length; i++ ){
            if (pickupSelects[i].value == document.getElementById(dropDownName).value) {
                document.getElementById(buttonNameToSet).value = buttonValue+' ('+pickupSelects[i].label+')';
                break;
            }
        }
    }

}


function keyboardSpyBasedOnInput(elemName) {
    elemToMove = elemName;
    capExtent = document;
    var fN, str = '', l, k, f, wMv, sS, mseHandler = keyListener;
    var re = /function[ ]*(\w*)\(/;

    wMv = (!olIe4 && window.event);
    if (document.onmousemove || wMv) {
        if (wMv) capExtent = window;
        f = capExtent.onmousemove.toString();
        fN = f.match(re);
        if (fN == null) {
            str = f+'(e); ';
        } else if (fN[1] == 'anonymous' || fN[1] == 'mouseTracker' || (wMv && fN[1] == 'onmousemove')) {
            if (!olOp && wMv) {
                l = f.indexOf('{')+1;
                k = f.lastIndexOf('}');
                sS = f.substring(l,k);
                if ((l = sS.indexOf('(')) != -1) {
                    sS = sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,'');
                    if (eval("typeof " + sS + " == 'undefined'")) window.onmousemove = null;
                    else str = sS + '(e);';
                }
            }
            if (!str) {
                olCheckMouseCapture = false;
                return;
            }
        } else {
            if (fN[1]) str = fN[1]+'(e); ';
            else {
                l = f.indexOf('{')+1;
                k = f.lastIndexOf('}');
                str = f.substring(l,k) + '\n';
            }
        }
        str += 'mouseTracker(e); ';
        mseHandler = new Function('e', str);
    }

    capExtent.onmousemove = mseHandler;
    if (olNs4) capExtent.captureEvents(Event.MOUSEMOVE);
    style="cursor:text;position:absolute;left:-100px;top:-100px;"
}

var listenIsOn = false;
var keyboardElemListenerName = null;
var kkk='pickup_string';


function addInputListener(elemName){
    keyboardElemListenerName = elemName;
    setTimeout('runKeyboardListener()', 600);
}

function runKeyboardListener(){
    document.onkeyup = keyListener;
    //document.onkeyup = keyListener;
}

function removeKeyListener(){
    //document.onkeyup = null;
    document.onkeyup = null;
}

function keyTyper(e){
    if(!e){
        //for IE
        e = window.event;
    }
    if ( keyboardElemListenerName == 'pickup_string') {
        document.getElementById('return_string').value = document.getElementById('pickup_string').value;
    }
}

function keyListener(e){
    if(!e){
        //for IE
        e = window.event;
    }
    if(e.keyCode==13){
        removeKeyListener();
        //keyCode 37 is left arrow
        if ( keyboardElemListenerName == 'pickup_string') {
            removeKeyListener();

            document.getElementById('return_string').value = document.getElementById('pickup_string').value;
            document.getElementById('pickup_string').blur();
            /*keyboardElemListenerName = '';
            document.getElementById('return_string').focus();
            document.getElementById('return_string').select();
            document.getElementById('return_string').select();
            keyboardElemListenerName = '';*/
            xajax_pickup_form_seeker(xajax.getFormValues('search_form'));
        }
        if ( keyboardElemListenerName == 'return_string') {
            removeKeyListener();
            //document.getElementById('pickup_string').value = document.getElementById('return_string').value;
            document.getElementById('return_string').blur();
            /*keyboardElemListenerName = '';
            document.getElementById('pickup_string').focus();
            document.getElementById('pickup_string').select();
            //xajax_return_form_seeker(xajax.getFormValues('search_form'));
            keyboardElemListenerName = '';*/
            xajax_return_form_seeker(xajax.getFormValues('search_form'));
        }
    }
    else if(e.keyCode==9){
        if ( keyboardElemListenerName == 'pickup_string') {
            document.getElementById('return_string').focus();
            document.getElementById('return_string').select();
            removeKeyListener();
        }
        if ( keyboardElemListenerName == 'return_string') {
            document.getElementById('pickup_string').focus();
            document.getElementById('pickup_string').select();
            removeKeyListener();
        }
    }
    /*if ( keyboardElemListenerName == 'pickup_string') {
        document.getElementById('return_string').value = document.getElementById('pickup_string').value;
    }*/
}


function swapImage(zmien, idName) {
    document.getElementById(idName).src=zmien;
}

function getObjPosition(objName){
    var obj = document.getElementById(objName);
    var arrElements = new Array (obj.x, obj.y);
    return arrElements;
}

function setReturnValue(pickup_button, return_button) {
    var depObj = document.getElementById(pickup_button);
    var retObj = document.getElementById(return_button);
    retObj.value = depObj.value;
}



/**
 * Update selct boxes for pick/return offer details
 */
function UpdateSelectBoxes(hid_id){
    var my_cars= new Array();
    var json_hid = document.getElementById('json_'+hid_id);
    var new_pickup_obj = document.getElementById('new_pickup_'+hid_id);
    if (! new_pickup_obj) new_pickup_obj = document.getElementById('new_pickup');
    var new_return_obj = document.getElementById('new_return_'+hid_id);
    if (! new_return_obj) new_return_obj = document.getElementById('new_return');
    var group_id = document.getElementById('profile_'+hid_id).value;
    if (json_hid) {
        var myObject = eval('(' + json_hid.value + ')');
        var ddata = myObject[group_id];
        if (ddata && ddata['pickup'] && ddata['return']) {
            // first pickup
            new_pickup_obj.options.length = ddata['pickup'].length;
            new_return_obj.options.length = ddata['return'].length;
            var i = 0;
            for (var key in ddata['pickup']) {
                //document.getElementById(dropDownCountry).options;
                new_pickup_obj.options[i] = new Option(ddata['pickup'][key]);
                new_pickup_obj.options[i].value = key;
                i++;
            }
            i = 0;
            for (var key in ddata['return']) {
                //document.getElementById(dropDownCountry).options;
                new_return_obj.options[i] = new Option( ddata['return'][key]);
                new_return_obj.options[i].value = key;
                i++;
            }
        } else {
            new_pickup_obj.options.length = 0;
            new_return_obj.options.length = 0;
        }
    }
}

function ShowAgb(offer_id, yps_sid){
    var l_key = document.getElementById('new_pickup_'+offer_id);
    if (! l_key) l_key = document.getElementById('new_pickup');
    loc_key = l_key.value;

    var aid = document.getElementById('profile_agent').value;
    var offer_splitted = offer_id.split('_');
    var call_link = 'offer_details.php?loc_key=' + loc_key + '&aid=' + aid + '&id='+offer_id+'&par='+offer_splitted[0] + '&YPS_SID=' +yps_sid;
    if (loc_key != "") {
        new_win(call_link, 800, 750);
    }
}


function showHideDebug(){

    var debd = document.getElementById('debug_dump');
    if 	(debd){
        if (debd.style.display == 'block') {
            debd.style.display = 'none';
        }
        else {
            debd.style.display = 'block';
        }
    }
}

function showWarnWindow(msg, x, y, width_, height_) {
    var ajax_list_MSIE = true;

    if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')<0) {
        ajax_list_MSIE = true;
        // we have an IE
        // now check for version number 5.5+
        temp=navigator.appVersion.split("MSIE");
        version=parseFloat(temp[1]);
        if (version>=5.5) { //NON IE browser will return 0
            ajax_list_MSIE = false;
        } else {
            ajax_list_MSIE = true;
        }
    }


    var my_Div = document.createElement('DIV');
    my_Div.id = 'my_warn_div';
    my_Div.style.left = (x +20) + 'px';
    my_Div.style.top = (y +20) + 'px';
    my_Div.style.width = width_ + 'px';
    my_Div.style.height = height_ + 'px';
    my_Div.style.visibility = 'visible';
    my_Div.style.display = 'block';
    document.body.appendChild(my_Div);

    var hideButton = '<div style="float: right; padding-left:10px;"><img src="templates/close.gif" class="link_view" onClick="hideWarnDiv();"></div>';

    my_Div.innerHTML = hideButton+'<br>'+msg;

    var my_iframe = document.createElement('IFRAME');
    my_iframe.id = 'my_warn_iframe';
    my_iframe.border='0';
    my_iframe.style.left = my_Div.style.left;
    my_iframe.style.top = my_Div.style.top;
    my_iframe.style.display = 'block';
    my_iframe.style.visibility = 'visible';

    document.body.appendChild(my_iframe);


}

function hideWarnDiv() {
    var my_div = document.getElementById('my_warn_div');
    var my_iframe = document.getElementById('my_warn_iframe');

    if (my_div) {
        my_div.style.display = 'none';
        document.body.removeChild(my_div);
        my_div = null;
    }

    if (my_iframe) {
        my_iframe.style.display = 'none';
        document.body.removeChild(my_iframe);
        my_iframe = null;
    }
}

function showBobWarning(msg) {
    var html = '<table class="rahmen" width="450" border="0" cellspacing="0" cellpadding="2" align="center" style="border: solid #000000 1px;" >';
    html += '<tr><td align=center bgcolor="#FF9933"><b>' + msg + '</b></td></tr>';
    html += '</table>';

    var bobObj = document.getElementById('bob');
    bobObj.style.display = 'block';
    bobObj.innerHTML = html;

    hideBobTimeout();
}

