/**
 * F R O N T E N D
 */
(function($) {
	// static constructs
	$.youplanet = $.youplanet || {};
	
	$.youplanet.frontend = {
		indicatorShow: function(selector) {
			$(selector).show();
		},
		indicatorHide: function(selector) {
			$(selector).hide();
		},
		elementShow: function(selector, time) {
			if(time) {
				$(selector).delay(time).show();
			}
			else {
				$(selector).show();
			}
		},
		elementHide: function(selector, time) {
			if(time) {
				$(selector).delay(time).hide();
			}
			else {
				$(selector).hide();
			}
		}
	};
}) 
(jQuery); 


/* functions */
function pleaseLogin(short_mode, referer, isform)
{
 
    var short = short_mode ? short_mode : false;

    if (short) {
      var pid = '#promptLoginShort';
    }
    else
    {
      var pid = '#promptLogin';
    }    
    
    var aconf = {
	        closeOnClick: false,
          closeOnEsc: true,
          close: '#promptClose',
          oneInstance: true,
          top: '20%',
          target: '.overlay',
          load: true
		};
		
		//var oconf = jQuery.youplanet.ivoverlay.getExtendedConf(aconf, {});

    jQuery('#promptTmp').overlay(aconf).load();
    
    if(referer || isform) {
    	sendReferer(referer, isform);
    }

    function sendReferer(ref, isform) {
      var params = '';

    	if(ref) {
    		params += 'referer=' + ref;
    		
    		if("undefined" != typeof fbconnect_location_refresh) {
          fbconnect_location_refresh = ref;
    		}
    	}
    	else {
    		if("undefined" != typeof fbconnect_location_refresh) {
    			fbconnect_location_refresh = null;
    		}
    	}
    	
    	if(isform) {
    		params += ('' != params?'&':'') + 'form=' + Form.serialize(isform);
    	}
    	
      new jQuery.ajax( {
        url: '/send/referer',
        type: 'POST',
        data: params
      });
    }
}

function newCity(newhref)
{
	jQuery('#promptCity').removeData('overlay');
	
    var aconf = {
          closeOnClick: false,
          closeOnEsc: true,
          close: '#promptCityClose',
          oneInstance: true,
          top: '10%',
          target: '.overlayCity',
          load: true,
          onBeforeLoad: function () {
        	  var wrap = this.getOverlay().find('.loginCityC');
        	  wrap.load(newhref);
          }
		};
		
	//var oconf = jQuery.youplanet.ivoverlay.getExtendedConf(aconf, {});

    jQuery('#promptCity').overlay(aconf).load();
    

}

function forceOpenPageInOverlay(ifhref)
{
  jQuery.youplanet.overlay.click(jQuery.youplanet.overlay.oconf, {url: ifhref, data: null});
}
 
function setCookie(c_name,value,expiredays){
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + '=' + escape(value)+
    ((expiredays == null) ? '' : ';expires=' + exdate.toGMTString()) + ';path=/';
}

function getCookie(c_name){
    if (document.cookie.length > 0){
        c_start = document.cookie.indexOf(c_name + '=');
        if (c_start != -1){
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(';',c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        }
    }
    return '';
}

function createJSCSSFile(fileName, fileType){
	if (fileType == "js"){ //if filename is a external JavaScript file
		var fileRef = document.createElement('script')
		fileRef.setAttribute("type", "text/javascript")
		fileRef.setAttribute("src", fileName)
	}
	else if (fileType == "css"){ //if filename is an external CSS file
		var fileRef = document.createElement("link")
		fileRef.setAttribute("rel", "stylesheet")
		fileRef.setAttribute("type", "text/css")
		fileRef.setAttribute("href", fileName)
	}
	return fileRef;
}

function addOrReplaceJSCSSFile(oldFileName, newFileName, fileType){
	 var targetElement = (fileType == "js")?"script":(fileType == "css")?"link":"none"; //determine element type to create nodelist using
	 var targetAttr = (fileType == "js")?"src":(fileType == "css")?"href":"none"; //determine corresponding attribute to test for
	 $(targetElement + "[" + targetAttr + "*=" + oldFileName + "]").remove();
	 document.getElementsByTagName("head")[0].appendChild(createJSCSSFile(newFileName, fileType))
}

function gup(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
} 
/* functions end */ 
 
var system = {
    start: function() {
      this.iAmStillAlive();
      this.attachLoginEnter();
      //this.skinselects();
    },
    iAmStillAlive: function(){
      setInterval("jQuery.ajax({ url: ALIVE_URL })", ALIVE_INT);
    },
    skinselects: function() {
      jQuery('select').select_skin();
    },
    getHeaderJSON : function(xhr) 
    {
  	  var json;
  	  try { json = xhr.getResponseHeader('X-Json') }
  	  catch(e) {}

  	  if (json) {
  	    var data = eval('(' + json + ')'); // or JSON.parse or whatever you like
  	    return data
  	  }
  	},
  	noticeFromJSON: function(json) {
  		var notice = null;
  		
  		if(json && json.length) {
  			$.each(json, function(i, el) {
  				if('notice' == el[0]) {
  					notice = el[1];
  				}
  			});
  		}
  		
  		return notice;
  	},
    attachLoginEnter: function () {
      jQuery('#prompt_login_form input').keypress(function(e){
      if(e.which == 13){
       jQuery('form#prompt_login_form .submit').click();
       }
      });
    }
}

jQuery(document).ready(function(){ system.start(); }); 

 
