var w3cDOM = (typeof document.getElementById != "undefined" && typeof document.createElement != "undefined") ? true : false;

// Fake window.onLoad. 
var initJS = function() {};

function listenEvent (target, type, listener) {
    if( target==window && type=='load' ) {
    	var tmp = initJS;
    	initJS = function() {tmp(); listener();};
    } else if (typeof target.addEventListener != "undefined") {
        target.addEventListener (type, listener, false);
    } else if (typeof target.attachEvent != "undefined") {
        target.attachEvent ("on" + type, listener);
    }
}

function unlistenEvent (target, type, listener) {
    if (typeof target.removeEventListener != "undefined") {
        target.removeEventListener (type, listener, false);
    } else if (typeof target.detachEvent != "undefined") {
        target.detachEvent ("on" + type, listener);
    }
}


window.reEmail = /^([\w\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/i;



function setCookie(cookieName, cookieValue, nDays, sPath) {
    var today = new Date();
    var expire = new Date();
    if (nDays == null || nDays == 0) nDays = 1;
    if (sPath == null) sPath = '/';
    expire.setTime(today.getTime() + 3600000 * 24 * nDays);
    document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + expire.toGMTString() + ';path=' + sPath;
}

function bookmark (URI, title) {
    if (typeof window.external != "undefined" && navigator.userAgent.indexOf("MSIE") != -1) {
		window.external.AddFavorite (URI, title);
    } else if (typeof window.opera != "undefined") {
        alert ("Press [Ctrl] + [T] to bookmark this page.");
    } else {
        alert ("Press [Ctrl] + [D] to bookmark this page.");
    }
}

function homePage( uri ) {
	if( window.external ) {
		document.body.style.behavior = "url(#default#homepage)";
    	document.body.setHomePage(uri);
 	} else {
		alert("Your browser does not support setting the home page automatically.");
	}
}

function showHideFullBlock(){
	if(document.getElementById('smallBlock').style.display=='block'){
		document.getElementById('smallBlock').style.display='none';
	}else{
		document.getElementById('smallBlock').style.display='block';
	}
	if(document.getElementById('fullBlock').style.display=='block'){
		document.getElementById('fullBlock').style.display='none';
	}else{
		document.getElementById('fullBlock').style.display='block';
	}
}

function toggle(el, display) {
    if (typeof(el) == 'string') el = $(el);
    el.style.display = (el.style.display == 'none') ? '' : 'none';
}

function filterInteger(event) {
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    return ((keyCode == 46) || (keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode == 37) || (keyCode == 39) || (keyCode > 47 && keyCode < 58));
}

function filterPhone(event) {
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    return ((keyCode == 40) || (keyCode == 41) || (keyCode == 43) || (keyCode == 45) || (keyCode == 46) || (keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode == 37) || (keyCode == 39) || (keyCode > 47 && keyCode < 58));
}

function filterIcq(event) {
    var keyCode = (event.charCode) ? event.charCode : event.keyCode;
    return ((keyCode == 45) || (keyCode == 46) || (keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode == 37) || (keyCode == 39) || (keyCode > 47 && keyCode < 58));
}

function restorePassword(email, success, error) {
    new Ajax.Request('/plugins/ajax/restore_password.php', {
        parameters : 'email=' + email.value,
        onSuccess  : function(transport, json) {
            $('messageRestore').innerHTML = (json.success) ? success : error;
        }
    });
}

function doLogin(message) {
    new Ajax.Request('/plugins/ajax/login.php', {
        parameters : 'login=' + $('authEmail').value + '&password=' + $('authPassword').value,
        onSuccess  : function(transport, json) {
            if (json.success)
                document.location = '/userarea/list/';
            else
                $('messageLogin').innerHTML = message;
        }
    });
}

function searchByKeywords(form, uri) {
    var oKeywords = $('search-keywords');
    var oRegion = $('search-region');
    var oCategory = $('search-category');
    
    var keywords = oKeywords.value.replace(/(%+)/, '');
    keywords = keywords.replace(/(\/)/, ' ');

//    if (keywords.length < 3) {
//        alert('Укажите поисковый запрос');
//        return false;
//    }

    uri = (oCategory && oCategory.checked) ? uri : ''; 
    uri = '/' + (uri == '/' ? '' : uri) + 'data/tpl-search/region:' + ((oRegion && oRegion.checked) ? oRegion.value : 0) + '/' + ((oCategory && oCategory.checked) ? ('category:' + oCategory.value + '/') : '') + 'keywords:' + encodeURIComponent(keywords) + '/';

    document.location = uri;
}

function getEnums(parent, element, selected, first) {
    new Ajax.Request('/plugins/ajax/enums.php', {
       parameters : 'name=' + parent,
       onSuccess : function(transport, json) {
           var el;
           var select = $(element);
           select.innerHTML = '';
           if (first) {
               el = document.createElement('OPTION');
               el.value = '';
               el.innerHTML = first;
               select.appendChild(el);
           }
           for (var i = 0, n = json.items.length; i < n; i ++) {
               el = document.createElement('OPTION');
               el.value = json.items[i].id;
               if (selected) el.selected = (selected == json.items[i].id);
               el.innerHTML = json.items[i].data;
               select.appendChild(el);
           }
       }
    });
}

function select_region(){
        var region = $('region').value;

    new Ajax.Request('/plugins/ajax/set_region.php', {
        parameters : 'region=' + region,
        onSuccess : function(transport, json) { 
            // go to "Все пакеты"
            document.location = '/psellers/list/data/package:a181a603769c1f98ad927e7367c7aa51/?region=' + region;
        }
    });
}

