//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/*
*# DEFAULT FUNCTION AS OBJECT
*# created: 15:07:2007
*------------------------------------------------------------------
*# DEFAULT OBJECTS START
*# refreshed:30:08:2007
*# objForm
*# ObjTmp
*# myInfo
*# myMainTmp
*# auctionTime
*# externalIframe
*# devInfo
*# myWelcome
*------------------------------------------------------------------
*/
////////////////////////////////////////////////////////////////////
/*
*------------------------------------------------------------------
* DEFAULT FORM OBJECT
*# refreshed:18:08:2007
*------------------------------------------------------------------
*/
ObjForm = function(){ this.formArr = new Array();}
ObjForm.prototype = {
    msg : null,
    checkForm : function(form){
        var msg = "";
        
		for(var i = 0; i < form.elements.length; i++) {
            if(typeof(_DEFEX[form.elements[i].name]) != "undefined"){
                if( ! form.elements[i].value.match(_DEFEX[form.elements[i].name]) ){
                    msg += _DEFMSG[form.elements[i].name]+"<br/>";
                }
            }
        }
        if(msg != ""){
            myInfo.outPut(msg);
            return false;
        }else{
            return true;
        }
    },
    checkFormShop : function(form){
        var val = 0;
        var msg = "";
        var multi = 1;
        // multiplier for packages (ammunition)
        if(form.packageSize && form.packageSize.value != "") {
    			multi = form.packageSize.value;
    	}
    	 //myInfo.outPut( form.productAmountMax.value + " a" + form.productAmountSelf.value );
    	 //return;
        if(form.productAmountMax.value*1 > 1){
		
            if( this.checkFormSingleElement( form ) ){
                if( typeof(form.productAmountSelf) != "undefined" && typeof(form.productAmount) != "undefined" ){
                    if(form.productAmountSelf.value != "" && form.productAmountSelf.value > 0 ){
                        if( typeof( form.productAmountSelf.value*1 ) == "number" ){ val = form.productAmountSelf.value*1 * multi; }
                    }else{
                        for (i = 0; i < form.productAmount.length; ++i){
                            if( form.productAmount.options[i].selected == true && form.productAmount.options[i].value != "" ){
                                val = form.productAmount.options[i].value;
                                break;
                            }
                        }
                    }
                    //typeof(form.productAmountSelf) != "undefined" && 
                    if( val > form.productAmountMax.value*1 ){ msg = _DEFMSG["errorShopValueMax"]; val = 0; }
                }
            }else{ msg = this.msg; }
        }else{val = 1;}
        if( val == 0){
            if( msg == "" ){ msg = _DEFMSG["errorShopEmpty"]; }
            myInfo.outPut( msg );
        }else{
            form.submit();
        }
    },
    checkFormSingleElement : function(form){
        var boolHasValue = false;
        var boolCheck = true;
        if( document.forms[form.id] ){
            for(var i = 0; i < form.elements.length; i++) {
                if( form.elements[i].type != "hidden" &&  form.elements[i].type != "submit" ){
                    if( form.elements[i].value != "" && boolHasValue ){ boolCheck = false; break; }
                    if( form.elements[i].value != "" && ! boolHasValue ){ boolHasValue = true; }
                }
            }
            if( ! boolCheck ){ this.msg = _DEFMSG["errorFormToMuchValue"]; }
        }else{
            boolCheck = false;
            this.msg = _DEFMSG["errorFormNotExist"];
        }
        return boolCheck;
    },
    checkFormId : function(id){
        if(typeof(id) == "undefined" || id == ""){
            return false;
        }else{if(typeof(this.formArr[id]) == "undefined"){this.formArr[id] = {selectAll : 0}}
            return true;
        }
    },
    selectAll : function(form){
        if(this.checkFormId(form.id)){
            this.formArr[form.id].selectAll = (this.formArr[form.id].selectAll == 1) ? 0 : 1;
            for(var i = 0; i < form.elements.length; i++) {
                if (form.elements[i].type == "checkbox") form.elements[i].checked = this.formArr[form.id].selectAll;
            }
        }
    },
    refreshMailForm : function(formId,arrArg){
        if(this.checkFormId(formId) && document.forms[formId]){
            for(var i = 0; i < document.forms[formId].elements.length; i++) {
                if (document.forms[formId].elements[i].type != "hidden" && document.forms[formId].elements[i].type != "submit" && document.forms[formId].elements[i].type != "reset"){
                    document.forms[formId].elements[i].value = "";
                    if(typeof(arrArg[document.forms[formId].elements[i].name]) != "undefined")
                    document.forms[formId].elements[i].value = arrArg[document.forms[formId].elements[i].name];
                }
            }
        }
    },
    formSubmit : function(formId){
        if( this.checkForm(document.forms[formId]) ){
        document.forms[formId].submit();
        }
    },
    formPopUp : function(formId,valueKey,action){
       formVal = this.valueKey(formId,valueKey);
       if(typeof(formVal)!= "undefined" && formVal!= "" ){
       url = "index.es?action="+action+"&popupID=formWindow&formval="+formVal+"&sid="+document.forms[formId]["sid"].value;
       _screenPos = centerPopUp(300,350)
       formWindow = window.open( url , "formWindow" , "width=300,height=350,left="+_screenPos._left+",top="+_screenPos._top);
       formWindow.focus();
       }
    },
    valueKey : function(formId,valueKey){
		var result = "";
		if( this.checkForm(document.forms[formId]) ){ 
			var form = document.forms[formId];
			var result = "";		
			for (i = 0; i < form[valueKey].length; ++i){
				if( form[valueKey].options[i].selected == true && form[valueKey].options[i].value != "" ){
					result = form[valueKey].options[i].value;
					break;
				}
			}	
		}
		return result;
    }
    
}

myForm = new ObjForm();
/****************************
* DUMMY OBJECT POPUP API
****************************/
PopUpApi = function(){ this.userId = "{/literal}{if $devInfo && $userName == 'php_admin' || $devInfo && $userName == 'php_admin02'  || $devInfo && $userName == 'php_admin03' }{$userName}{/if}{literal}"; }
PopUpApi.prototype = {
    apiAccess : "public",
    getAccess : function(){
        if ( this.userId != "" ) { this.apiAccess = "admin"; }
        return ( this.apiAccess == "admin" ) ? true : false ;
    },	
    setInfoDev : function( infodata ){
        devInfo.subTmp["myDEVDATAOutPut"].outPut( infodata );
    },
    setPopUp : function(str_src ,str_name, int_w, int_h ){
        var _screenPos = this.centerPopUp(int_w,int_h);
        var sid  = (typeof(PAGE_SID)!= "undefined") ? "&sid="+PAGE_SID : "" ;
        var w = window.open(str_src+""+sid, str_name,"width="+int_w+",height="+int_h+",left="+_screenPos._left+",top="+_screenPos._top);
        if (w) {w.focus();}
    },
    centerPopUp : function(w,h){
        _screenCenter = {
            _left : screen.width/2 - w/2,
            _top : screen.height/2 - h/2
        }
       return _screenCenter;
    },
    getInfoDev : function(){}
}
////////////////////////////////////////////////////////////////////
/*
*------------------------------------------------------------------
* DEFAULT DYNAMIC TEMPLATE OBJECT
*# refreshed:18:08:2007
*------------------------------------------------------------------
*/
ObjTmp = function(id){ this.id = id; }
ObjTmp.prototype = {
    outPut : function(data){ document.getElementById(this.id).innerHTML = data; },
    css : function(str_css,mix_arg){ document.getElementById(this.id).style[str_css] = mix_arg; },
    show : function(show){document.getElementById(this.id).style.visibility = show;},
    display : function(show){
		if( show == "hidden" || show == "visible" ){
			show = ( show == "hidden") ? "none"  : "block";
		}
		document.getElementById(this.id).style.display = show;
    },
    changeSrc : function(src){},
	slideTmp : function(){},
	setSubTmp : function(id){ 
		if( typeof( id ) == "string" ){
			if( typeof( this.subTmp ) == "undefined" ){
				this.subTmp = new Array();
				this.subTmp[id] = new ObjTmp(id);
			}else if( typeof( this.subTmp[id] ) == "undefined" && typeof( this.subTmp ) == "object"  ){
				this.subTmp[id] = new ObjTmp(id);
			}
		}else if( typeof( id ) == "object" ){
			for( var k in id ){ this.setSubTmp(id[k]); }
		}
	}
}
////////////////////////////////////////////////////////////////////
/*
*------------------------------------------------------------------
* INSTANCE OF ObjForm
*------------------------------------------------------------------
*/
//myForm = new ObjForm();
/*
*------------------------------------------------------------------
* INSTANCE OF ObjTmp
* PARAMETER MUST BE THE NAME OF A DIV BY ID / ID == PARAMETER
*# refreshed:18:08:2007
*------------------------------------------------------------------
*/
myInfo = new ObjTmp("myInfo");
myInfo.outPut = function(data){

    var show = (data.length || typeof( data ) == "object") ? "block": "none";
    // USED, ONLY IF USER ENTER START-PAGE
    // IF MOVIE IS VISIBLE IFRAME-SRC WILL CHANGE AND SHOW SIMPLE HTML-PAGE
    // BECAUSE IF DONT CHANGE IT IS NOT POSSIBLE TO SHOW THE INFO-LAYER
    if(typeof(_gameIsShow) != "undefined"){ if(_gameIsShow){externalIframe.changeSrc("intro");} }
    // ALWAYS SET INFO-LAYER WITH DATA OR EMPTY
	// IF DATA == SHOW LAYER ONLY WILL SET VISIBLE
    if( typeof(data) == "string" && data != "show" || typeof( data ) == "object" ){
		var dataInfo = "<div class='infoClose' onclick='myInfo.outPut(\"\")'></div>";
        if( typeof( data ) == "object" ){
            dataInfo += "<div class='dataLarge'><span class='white'>"+data.vars+"</span></div>";
        }else{
            dataInfo += "<div class='data'><p class='center'><span class='whiteBold'>"+data+"</span></p></div>";
            if(data != "Coming soon!" ){
            dataInfo += "<div class='infoButton'><a class='buttonInfo' href='javascript:myInfo.outPut(\"\")'><div>"+_DEFMSG['txtInfoClose']+"</div></a></div>";}
        }

    	dataInfo = (dataInfo.length) ? dataInfo : "";
    	document.getElementById(this.id).innerHTML = dataInfo;
    }
	// SET THE VISIBILITY
    this.display(show);
}

myConfirm = new ObjTmp("myConfirm");
myConfirm.outPut = function(data){

    var show = (data.length || typeof( data ) == "object") ? "block": "none";
    // USED, ONLY IF USER ENTER START-PAGE
    // IF MOVIE IS VISIBLE IFRAME-SRC WILL CHANGE AND SHOW SIMPLE HTML-PAGE
    // BECAUSE IF DONT CHANGE IT IS NOT POSSIBLE TO SHOW THE INFO-LAYER
    if(typeof(_gameIsShow) != "undefined"){ if(_gameIsShow){externalIframe.changeSrc("intro");} }
    // ALWAYS SET INFO-LAYER WITH DATA OR EMPTY
	// IF DATA == SHOW LAYER ONLY WILL SET VISIBLE
    if( typeof(data) == "string" && data != "show" || typeof( data ) == "object" ){
		var dataInfo = "<div class='infoClose' onclick='myConfirm.outPut(\"\")'></div>";
        if( typeof( data ) == "object" ){
            dataInfo += "<div class='dataLarge'><span class='white'>"+data.vars+"</span></div>";
        }else{
            dataInfo += "<div class='data'><p class='center'><span class='whiteBold'>"+data+"</span></p></div>";
            if(data != "Coming soon!" ){
            dataInfo += "<div class='infoButton'><a class='buttonInfo' href='javascript:myConfirm.outPut(\"\")'><div>"+_DEFMSG['txtInfoClose']+"</div></a></div>";}
        }

    	dataInfo = (dataInfo.length) ? dataInfo : "";
    	document.getElementById(this.id).innerHTML = dataInfo;
    }
	// SET THE VISIBILITY
    this.display(show);
}
myPassword = new ObjTmp("myPassword");
myPassword.outPut = function(data){

    var show = (data.length || typeof( data ) == "object") ? "block": "none";
    // USED, ONLY IF USER ENTER START-PAGE
    // IF MOVIE IS VISIBLE IFRAME-SRC WILL CHANGE AND SHOW SIMPLE HTML-PAGE
    // BECAUSE IF DONT CHANGE IT IS NOT POSSIBLE TO SHOW THE INFO-LAYER
    if(typeof(_gameIsShow) != "undefined"){ if(_gameIsShow){externalIframe.changeSrc("intro");} }
    // ALWAYS SET INFO-LAYER WITH DATA OR EMPTY
	// IF DATA == SHOW LAYER ONLY WILL SET VISIBLE
    if( typeof(data) == "string" && data != "show" || typeof( data ) == "object" ){
		var dataInfo = "<div class='infoClose' onclick='myPassword.outPut(\"\")'></div>";
        if( typeof( data ) == "object" ){
            dataInfo += "<div class='dataLarge'><span class='white'>"+data.vars+"</span></div>";
        }else{
            dataInfo += "<div class='data'><p class='center'><span class='whiteBold'>"+data+"</span></p></div>";
            if(data != "Coming soon!" ){
            dataInfo += "<div class='infoButton'><a class='buttonInfo' href='javascript:myPassword.outPut(\"\")'><div>"+_DEFMSG['txtInfoClose']+"</div></a></div>";}
        }

    	dataInfo = (dataInfo.length) ? dataInfo : "";
    	document.getElementById(this.id).innerHTML = dataInfo;
    }
	// SET THE VISIBILITY
    this.display(show);
}

/*
*------------------------------------------------------------------
* MAIN DIV AS OBJECT
*------------------------------------------------------------------
*/
myMainTmp = new ObjTmp("tmpMain");
myMainTmp.changeSrc = function(src){self.location.href = src;}
/*
*------------------------------------------------------------------
* AUCTION TIMER
*# required: VAR PAGE_PATH_AUCTION , VAR PAGE_SID
*------------------------------------------------------------------
*/
auctionTime = new ObjTmp("tmpAuctionTime");
auctionTime.changeSrc = function(){ if( PAGE_SID != ""){ self.location.href = PAGE_PATH_AUCTION+"&sid="+PAGE_SID; } }
auctionTime.outPut = function( minute , seconds ){

    var sec = (seconds > 0) ? seconds-1 : 59 ;
    var min = (sec < 59) ? minute : ((minute > 0) ? minute-1 : 59 );
    var m = (min < 10) ? "0" + min : min;
    var s = (sec < 10) ? "0" + sec : sec;

    document.getElementById(this.id).innerHTML = m+":"+s;
	if(m == "00" && s == "00"){auctionTime.changeSrc();}
    window.setTimeout( 'auctionTime.outPut('+min+','+sec+')' , 1000 );
}
/*
*------------------------------------------------------------------
* IFRAME OBJECT
* CHANGE GAME AND PAGE
* # required: VAR _gameIsShow
*------------------------------------------------------------------
*/
externalIframe = new ObjTmp("externalIframe");
externalIframe.changeSrc = function(src){
    _gameIsShow = (src == "game") ? true : false;
    document.getElementById(this.id).src = "index.es?action=externalIframe&subAction="+src;
}
/**
*------------------------------------------------------------------
* DEVINFO FOR DEV INFO DATA
* ONLY FOR PHP WORKFLOW
*------------------------------------------------------------------
**/
devInfo = new ObjTmp("myDEV");
devInfo.slideTmp = function(){
    if( typeof( this.isShow ) == "undefined" ){ this.isShow = false; }
    if( this.isShow ){
        this.css("left","-442px");
        this.isShow = false;
    }else{
        this.css("left","1px");
        this.isShow = true;
    }
}
////////////////////////////////////////////////////////////////////
/*
*------------------------------------------------------------------
* WELCOME LAYER FOR CD-GAMER
*# refreshed:18:08:2007
*------------------------------------------------------------------
*/
myWelcome = new ObjTmp("myWelcome");
/**
*------------------------------------------------------------------
* DEFAULT FUNCTIONS
*------------------------------------------------------------------
**/
var _popupIDS = new Array();
var _popupName = "gamePopup";
//# FUNCTIONS FOR POPUP
function setPopUp( str_src , int_w , int_h , int_x , int_y ){
	var id = _popupName+""+_popupIDS.length;
	str_src = "action="+str_src+"&popupID="+id;
	if( typeof( DEV_PATH ) != "undefined" ){str_src = DEV_PATH+"?"+str_src}
	else{str_src = WWW_PATH+"?"+str_src}
	try{
		_popupIDS[id] = window.open( str_src , id , "width="+int_w+",height="+int_h+",left="+int_x+",top="+int_y);
		 if ( !_popupIDS[id] || typeof(_popupIDS[id]) != 'object' || _popupIDS[id].closed ) {
			throw "popup_blocked";
		}else{
	    	_popupIDS[id].focus();
		}
	}catch( e ){
		if(e == "popup_blocked"){
			if( typeof(myInfo) != "undefined" && typeof(self["_info_popup_blocked"]) != "undefined" ){
				myInfo.ouPut("<p>&nbsp;</p><p>"+_info_popup_blocked+"</p>");
			}else{
				alert(_info_popup_blocked);
			}
		}
	}
}
function closePopUp(id){
	_popupIDS[id].close();
}
function centerPopUp(w,h)
{
    _screenCenter = {
        _left : screen.width/2 - w/2,
        _top : screen.height/2 - h/2
    }
   return _screenCenter;
}
function setConfirmUrl(url,msg){
    check = confirm(msg);
    if(check != false)
    myMainTmp.changeSrc(url+"&sid="+PAGE_SID);
}

/**
*------------------------------------------------------------------
* FUNCTIONS FOR THE DROPDOWN MENU
*------------------------------------------------------------------
**/
function showSubMenu(object) {
	var pNode = object.parentNode;
	object.style.display="block";
}

function hideSubMenu(object) {
	var pNode = object.parentNode;
	object.style.display="none";
}

function hoverImage(str, navPoint) {
	var elementName = 'int' + str.charAt(0).toUpperCase() + str.substring(1);
	if(str != navPoint) {
		$(elementName).firstChild.firstChild.style.backgroundImage='url(../image/de/menu/int_menu_'+ str +'_button_hover.png)';
	}
}



function unHoverImage(str, navPoint) {
	var elementName = 'int' + str.charAt(0).toUpperCase() + str.substring(1);
	if(str == navPoint) {
		$(elementName).firstChild.firstChild.style.backgroundImage='url(../image/de/menu/int_menu_'+ str +'_button_active.png)';
	} else {
		$(elementName).firstChild.firstChild.style.backgroundImage='url(../image/de/menu/int_menu_'+ str +'_button.png)';
	}
}


/* used to preload the menu images */
function preloadImages()
{
    document.preloadedImages = new Array();
    document.globalImages = new Array('/image/de/menu/int_menu_home_button.png',
                                      '/image/de/menu/int_menu_home_button_hover.png',
                                      '/image/de/menu/int_menu_home_button_active.png',
                                      '/image/de/menu/int_menu_shop_button.png',
                                      '/image/de/menu/int_menu_shop_button_hover.png',
                                      '/image/de/menu/int_menu_shop_button_active.png',
                                      '/image/de/menu/int_menu_clan_button.png',
                                      '/image/de/menu/int_menu_clan_button_hover.png',
                                      '/image/de/menu/int_menu_clan_button_active.png',
                                      '/image/de/menu/int_menu_gang_button.png',
                                      '/image/de/menu/int_menu_gang_button_hover.png',
                                      '/image/de/menu/int_menu_gang_button_active.png',
                                      '/image/de/menu/int_menu_quests_button.png',
                                      '/image/de/menu/int_menu_quests_button_hover.png',
                                      '/image/de/menu/int_menu_quests_button_active.png',
                                      '/image/de/menu/int_menu_payment_button.png',
                                      '/image/de/menu/int_menu_payment_button_hover.png',
                                      '/image/de/menu/int_menu_payment_button_active.png',
                                      '/image/de/menu/int_menu_community_button.png',
                                      '/image/de/menu/int_menu_community_button_hover.png',
                                      '/image/de/menu/int_menu_help_button.png',
                                      '/image/de/menu/int_menu_help_button_hover.png',
                                      '/image/de/menu/int_menu_sub_button.png');
    
    
    for (var i = 0; i < document.globalImages.length; i++)
    {
        document.preloadedImages[i] = new Image();
        document.preloadedImages[i].src = document.globalImages[i];
    }
}
