/* Common Functions */
function fnMouseover(e) {$(this).addClass("hover");}
function fnMouseout(e) {$(this).removeClass("hover");}

function doRand(){var now=new Date();num=(now.getSeconds());num=num+1;return num;}

jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

function pcase(str) { 
	if (str == null){
		return "";
	}
   strlen = str.length; 
   jj = str.substring(0,1).toUpperCase();
   jj = jj + str.substring(1,strlen).toLowerCase();
   for (i = 2; i <= strlen; i++) { 
      if (jj.charAt(i)==" ") { 
         lefthalf = jj.substring(0,i+1);
         righthalf = jj.substring(i+1,strlen);
         righthalf = righthalf.substring(0,1).toUpperCase()+righthalf.substring(1,strlen);
         jj=lefthalf+righthalf;
      } 
   }return jj;
}
function roombyID(id){ // Find Model Object by Room ID
	for(var i=0; i<Models.length; i++){
		if (Models[i].roomid == id){
			return Models[i];
		}
	}
	return false;
}
function tShow(o){
	$(o).slideToggle();
}
function showJava(){
	$('#javabox').css('visibility','visible');
	$('#javabox').css('display','block');
	$('#javabox').load('java.html');
}
function showSignup(){ // Resellers
	$('#content').hide();
	$('#chatarea').toggle();
	$('#signup').toggle();
	$('#signupbox').show();
}
function enterchat(){
	$('#topline LI A').hide();
	$('#topline LI A.b').show();
	$('#minutesbox').hide();
	$('#chatarea').css('display','block');
	$('#chatarea').load('schat.html', function(){
		chatInit();
		fnOnConnect(); // vlad debug
		setTimeout ( "showJava()", 350 );
	});	
}
function loadIframe(src){
	$('#minutesbox').hide();
	$('#modelsbox').hide();
	hideChat();		
	var iframe = document.createElement("iframe");
	// $(iframe).css('width','100%');
	$(iframe).attr('src',src);
	$(iframe).attr('frameborder',0);	
	// $(iframe).addClass("aaa");
	$("#column2").append(iframe);
}

/*
function gotoPage(tg){
	if (tg == "addtime"){
		 loadIframe('/contents/additionalminutes.aspx?room=9');
	}else if (target == "exitchat"){
		hideChat();
	}else if (target == "signup"){
		hideChat();
		showSignup();
	}else{
		alert('Uknown goto() call.');
	}
}
*/

function fnRatingClicked(e){
	var val = $(this).attr('title');
	$('#ratingprogress').show();
	fnChatSend( '[rating:' + val + ']' );
	$.get("api/ajax.aspx", { method: "rater", model: null,rating: val },function(data){
    	$('#ratingprogress').fadeOut();});
}
function hideChat(){
	$('#chatarea').hide();
	$('#javabox').empty();	
	$('#topline LI A').show();
	$('#topline LI A.c').hide();}
function showModelList(){
	$('#toptabs').removeClass('b');
	$('#minutesbox').hide();
	$('#modelsbox').show();	
	hideChat();	
	$('IFRAME').remove();
	$('#modelsbox EM').bind('click',function(){
		showMinutes();
	});
}
function showMinutes(){
	hideChat();
	$('#toptabs').addClass('b');
	$('#modelsbox').hide();
	$('#minutesbox').show();
	$('IFRAME').remove();
}
function fnSwitchStreamTo(obj){
	// console.log("fnSwitchStreamTo()", obj);
	Movie.doConnect(obj.server, obj.stream);
	$('#navig .room').text(obj.roomname);
	$('#navig .model').text(pcase(obj.chatname));	
	$('#headblock').fadeOut(function(){
		$('#playingtxt').html(obj.roomname);
		$('#videotop_model').html(pcase(obj.chatname));
		$('#headblock').fadeIn();
	});	
	if(typeof onSwitchStreamComplete == "function"){
			onSwitchStreamComplete(obj);
	}
	
	if(typeof urchinTracker == "function"){
		urchinTracker('/flash/' + obj.stream + '/' + obj.chatname);
	}
}
function updateModels(data){
	// console.log('updateModels()',data)
	
	$("#modelsbox A").remove();
	var p = data.split(/\n/);
	// console.log(p);
	Models = new Array();
	for (var i=0; i<p.length; i++){
		var line = p[i].split(/\|/);
		// console.log(line);
		if (line.length < 4){
			continue;
		}
		var a = {
			chatname: line[0].toString(), 
			stream: line[1], 
			roomname: line[2].toString(), 
			server: line[3], 
			roomid: line[4],
			shows: line[5],
			rating: line[6],
			is_favorite: line[7]
		}
		
		
		// console.log(a);
		a.chatname = a.chatname.replace(/\n/,"");
		a.roomname = a.roomname.replace(/\s?[0-9]$/,"");
		
		if (line[0] != ""){
		//alert(a);
			Models.push(a);
			var iline;
			var ahref = document.createElement("a");
			
			iline = '<b>' + pcase(a.chatname) + '</b><img src="http://images.directmember.com/bio/' + a.chatname + '_1.jpg" /><div class="rm">' + a.roomname + '</div>';
			$(ahref).bind('click',a, fnModelClicked);		
			$(ahref).append(iline);
/*			$(ahref).hoverIntent({
			sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
			interval: 450,   // number = milliseconds of polling interval
			over: fnModelOver,  // function = onMouseOver callback (required)
			timeout: 100,   // number = milliseconds delay before onMouseOut function call
			out: fnModelOut    // function = onMouseOut callback (required)
			});*/

			$("#modelsbox .wrap").append($(ahref));
		}
	}
}
function fnModelOver(e){
	
}
function fnModelOut(){
	
}
function updateModelList(){
	$.get(CONFIG.api + "?method=onlinemodels", updateModels);
}


function getCookie1(c_name){
	return $.cookie(c_name);
}

function setCookie1(c_name,value,expiredays){
	$.cookie(c_name, value, { expires: expiredays, path: '/', domain: 'directsex.com' });
}


function checkcookie(){
	if ($('#rememberme').attr('checked')){
		var Emailid = $('#loginTxt').val();
		var Passwd  = $('#passwdTxt').val();
		setCookie1('usernamecookie',Emailid,365);
		setCookie1('passwordcookie',Passwd,365);
		setCookie1('remembermecookie',1,365);}
	else{
		$setCookie1('usernamecookie', null);
		$setCookie1('passwordcookie', null);
		$setCookie1('remembermecookie', null);
		}
}



function userLoginCheck() {
	var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	
	var Emailid = $('#passwdTxt').val();
	var Passwd  = $('#passwdTxt').val();
	
	if (!(regex.test(Emailid))){
		alert("Please enter the valid email ID.");
	}else if (Passwd == ""){
		alert("Please enter password.");			
	}else{
		checkcookie();
		$('#frmMain').attr('target','_top').attr('action','http://www.directmember.com/authx.aspx').submit();
	}
} 

function emptyUserPass(){
	if (document.frmMain.login.value=='username'){
		document.frmMain.login.value='';
		document.frmMain.passwd.value='';
	}
}

checkRemembered = function(){
	var Login=$.cookie("usernamecookie");
	var Pass=$.cookie("passwordcookie"); 
	   
	if (Login!=null){
		//$('#frmMain #loginTxt').val(Login);
		//$('#frmMain #passwdTxt').val(Pass);
		document.frmMain.login.value=Login;
		document.frmMain.passwd.value=Pass;
	}else{
		//$('#frmMain #loginTxt').val('username');
		//$('#frmMain #passwdTxt').val('password');
		document.frmMain.login.value='username';
		document.frmMain.passwd.value='password';
	}	
	//$('#frmMain #loginTxt').focus();
	document.frmMain.login.focus();	
}









/*
flashvideo.js
> Flash Video Related Functions
*/

function FlashVideo() { 	// Flash Video API Class - Created by Mr. V
	var flashMovie;
	this.setFlashObject=function(id){
		this.flashMovie = document.getElementById(id);
	};


	this.doConnect=function(srv, chnl){
	if (document.getElementById("flashcontent"))
	{
		if (typeof this.flashMovie == "undefined"){
			console.log("this.flashMovie is undefined")
			return false;
		}
		
		if(typeof this.flashMovie.fnApi != "function"){
			alert('Flash does not support API');
			return false;
		}
		
		if (srv == undefined){
			alert('Error: Server not defined');
		}
		// console.log("server: %s / %s", srv, chnl);
		var val = {server: srv, stream: chnl};
		var data = {method: 'doConnect', value: val};
		var ret = this.flashMovie.fnApi(data);
		}
	};
	this.callMethod=function(met, v){
		var data = {method: met, value: v};
		var ret = this.flashMovie.fnApi(data);
	}
}

function fnConnect(){
	var obj = roombyID(DATA_INIT.roomid);

	Movie.callMethod('setMode', 'rs');
	Movie.callMethod('setDebug', false);
	fnSwitchStreamTo(obj);
	// Movie.doConnect(obj.server, obj.stream);
	// Movie.callMethod('setDebug', false);
	// Movie.callMethod('setFps', 1.5);
}

function roombyID(id){ // Find Model Object by Room ID
	for(var i=0; i<Models.length; i++){
		if (Models[i].roomid == id){
			return Models[i];
			// alert("roombyID");
		}
	}
	return false;
}


function fnSetFullScreen(){
		// $('body').append($('#flashcontent'));
		
		// $('body').addClass('fullscreen');
		
		// var w = $(document).width();
		// var h = $(document).height();
		
		$('#flashcontent').addClass('fullscreen');
		/*
		$('#flashcontent').css('position','absolute');
		$('#flashcontent').css('top','0px');
		$('#flashcontent').css('left','0px');
		$('#flashcontent').css('border','0px');
		$('#flashcontent').css('width', '100%');
		$('#flashcontent').css('height','100%');
		*/
		
		$('#dsvideo').addClass('fullscreen');
		/*
		$('#dsvideo').css('width','100%');
		$('#dsvideo').css('height','100%');
		*/
		fnChatSend( '[fullscreen]' );
}

function fnOnStatus(){
	var i;

	$('#online_onlinemodels A.mHeadshot').removeClass('onshow').removeClass('onbreak').css('opacity',1);
	
	for(i=0; i<CONFIG.onBreak.length; i++){
		var rname = CONFIG.onShow[i];
		rname =	rname.replace(/\d$/,'');
		$('#online_onlinemodels A.mHeadshot.' + rname).addClass('onbreak');
	}
	for(i=0; i<CONFIG.onShow.length; i++){
		var rname = CONFIG.onShow[i];
		rname =	rname.replace(/\d$/,'');
		$('#online_onlinemodels A.mHeadshot.' + rname).addClass('onshow').css('opacity',0.5).append('<a class="showonly"><img border="0" src="img/model_onshow.png" /></a>');;
	}
}

function fnFlash(data){
	if (typeof console == "object"){
		// console.log(data);
	}
	if (data.method == 'loaded'){
		setTimeout ( "fnConnect()", 350 );
	}else if (data.method == 'video_started'){
		
	}else if (data.method == 'reload' && data.value == true){
		initVideo();
		
	}else if (data.method == 'onshow'){
		CONFIG.onShow = data.value;
		fnOnStatus();
	}else if (data.method == 'onbreak'){
		CONFIG.onBreak = data.value;
		fnOnStatus();
	}else if (data.method == "fullscreen" && data.value == true){
		fnSetFullScreen();
	}else if (data.method == "fullscreen" && data.value == false){
		$('#flashcontent').removeClass('fullscreen');
/*		$('#flashcontent').css('top','auto');
		$('#flashcontent').css('left','auto');
		$('#flashcontent').css('width', '420px');
		$('#flashcontent').css('height','315px');
		*/
		fnChatSend( '[normalscreen]' );
	}else if (data.method == "chat"){
		fnChatSend( data.value );
	}else if (data.method == 'currentmodel'){
			if (typeof(onSwitchModel) == 'function'){
				onSwitchModel(data.value);
			}
	}else{
		// console.log("%s: %s",data.method, data.value);
	}
	return true;
}

var newWin = null;  
function openSignup(){
	var account = $('#Account').val();
	var resTrack;
	if (getCookie1('resellerId') > 0){
		resTrack = "&XField=" + getCookie1('resellerId');
	}else{
		resTrack = "";	
	}

	if (newWin != null && !newWin.closed)  
       newWin.close(); 
	//window.open("https://securebilling.directsex.com/join.aspx?site_id=DirectSex" + resTrack  ,"SecureSignup", "toolbar=no,status=yes,scrollbars=yes,height=700,width=760,resizable=yes");
	//window.open("https://securebilling.directsex.com/join-new.aspx?site_id=DirectSex&pricecode=" + resTrack  ,"SecureSignup", "toolbar=no,status=yes,scrollbars=yes,height=700,width=760,resizable=yes");
	newWin = window.open("https://securebilling.directsex.com/join.aspx?a=a&site_id=DirectSex&pricecode=" + resTrack  ,"SecureSignup", "toolbar=no,status=yes,scrollbars=yes,height=700,width=760,resizable=yes");
	newWin.focus();

}

  
function loadpage(val){
	if(val=='off'){
		var val;
		if(typeof(wars)=='undefined'){
			val = '';
		}else{
			val = wars;
		}
		document.location.href="offlinemodels.aspx?v="+val;
	}else{
		document.location.href="online.aspx";
	}
}


// Version 2010
function bindBodyClick(){
	$(document).bind('click',function(){
		$('.hideable').hide();
		$(document).unbind('click')
	});
}

function showLoginBox(obj){
	$('#loginFBox').toggle();
	return false;
}

function switchLang(language) {
    setCookie1('culture', language, 365);
}



function goDirectLoginChange() {
	showLoginBox()
}
function goDirectLogin(obj) {
	$('FORM').attr('action', 'http://www.directmember.com/Authx.aspx').submit();
	return false;
}

function userLogin(f) {
	var parent = $(f);
	var isValid = true;
	var emailRegex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;

	var login = $('input[name=login]', parent).removeClass('error');
	var pass = $('input[name=passwd]', parent).removeClass('error');
	
	if (!(emailRegex.test($(login).val()))) {
		// alert('Invalid Login');
		$(login).addClass('error');
		isValid = false;
	}
	if ($(pass).val().length < 3 || $(pass).val().length > 21) {
		// alert('Invalid Password');
		$(pass).addClass('error');
		isValid = false;
	}

	if (isValid == true) {
		if ($('input[name=rememberme]:checked', parent).length > 0) {
			$.cookie('usernamecookie', $(login).val(), { expires: 365, path: '/' });
			$.cookie('passwordcookie', $(pass).val(), { expires: 365, path: '/' });
			$.cookie('remembermecookie', 1, { expires: 365, path: '/' });

		} else { // reset
			$.cookie('usernamecookie', null, { expires: -1, path: '/' });
			$.cookie('passwordcookie', null, { expires: -1, path: '/' });
			$.cookie('remembermecookie', 0, { expires: 365, path: '/' });
		}
	
		$('FORM').attr('action', 'http://www.directmember.com/Authx.aspx').submit();
	}
}


$('#loginFBox').ready(function() {
    var parent = $('#loginFBox');
    var loginTxt = getCookie1("usernamecookie");
    var passTxt = getCookie1("passwordcookie");
    if (loginTxt != null && loginTxt.length > 0) {
        $('input[name=login]', parent).val(loginTxt);
        $('input[name=passwd]', parent).val(passTxt);
    }

    if (getCookie1("remembermecookie") == "1") {
        $('input[name=remembermecookie]', parent).attr('checked', 'checked');
    } else {
        $('input[name=remembermecookie]', parent).removeAttr('checked');
    }

});	

// track resellers and save cookie for 1 year
$(document).ready(function(){
	if (typeof(CONFIG) != "undefined" && CONFIG.resellerId != "" && CONFIG.resellerId > 0) {
		setCookie1('resellerId',parseInt(CONFIG.resellerId),365);
	}
});

