/**
*/

//Global variable
if(document.URL.match('dev.')){
    var HM_URL = "http://dev.www.jav.com/";
    var MY_URL = "https://dev.my.jav.com/";
}else if(document.URL.match('staging.')){
    var HM_URL = "http://staging.www.jav.com/";
    var MY_URL = "https://staging.my.jav.com/";
}else{
    var HM_URL = "http://www.jav.com/";
    var MY_URL = "https://my.jav.com/";
}

function siteRequest(url, lang, data, param, callbackFunc)
{
	if((navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] <= 2005){
		 var myAjax = new Ajax.Request(url,
            {method: 'post',
            parameters: data,
            onComplete:callbackFunc.bindAsEventListener(this, lang, url, param)});
//		return '1000';		
	}else{
		var myAjax = new Ajax.Request(url,
			{method: 'post',
			parameters: data,
			onComplete:callbackFunc.bindAsEventListener(this, lang, url, param)});
	}
}

/**
*	お気に入りに追加リンク,後で見るリンク　on Detail page
*/
function saveMyVideo(lang, videoId, type)
{
    var req;
	var url;

    if(type=="L"){
        url = HM_URL+lang+"/Mysavedforlater/save";
    }else if(type=="F"){
        url = HM_URL+lang+"/Myfavorites/save";
    }
	var param = new Array(2);
    param['videoId'] = videoId;
	var reqParamStr = "videoId="+videoId;
    if(siteRequest(url, lang, reqParamStr, param, replaceSaveMyVideo)==1000){
	//	location.reload(true);
		redirect(location.hostname+location.pathname);
	}
}

function redirect(url)
{
	var form = document.createElement("form");
    form.setAttribute("method", "get");
    document.body.appendChild(form);    // Not entirely sure if this is necessary
    form.submit();
}

/*
*  お気に入り,後で見る削除rリンク　on Detail page
*/
function deleteMyVideo(lang, videoId, type)
{
    var req;
    var url;

    if(type=="L"){
        url = HM_URL+lang+"/Mysavedforlater/delete";
    }else if(type=="F"){
        url = HM_URL+lang+"/Myfavorites/delete";
    }

    if(videoId){
        var param = new Array(2);
        param['videoId'] = videoId;
    }
    var reqParamStr = "videoId="+videoId;
    if(siteRequest(url, lang, reqParamStr, param, replaceSaveMyVideo)==1000){
		//this is for firefox ver1
		redirect(location.hostname+location.pathname);
	}
}

function replaceSaveMyVideo(obj, lang, url, obj2)
{
	var type;
	var elm;
	var str;
	var videoId = obj2['videoId'];

	if(url.match('Mysavedforlater')){
		elm = document.getElementById("aViewLater");

		if(url.match('Mysavedforlater\/save')){
			if(lang=='ja'){
				str = "<a href=\"javascript:deleteMyVideo(\'"+lang+"\', "+videoId+", \'L\');\">後で見るリストから外す</a>";
			}else{
				str = "<a href=\"javascript:deleteMyVideo(\'"+lang+"\', "+videoId+", \'L\');\">Remove Save For Later</a>";
			}
		}else{
			if(lang=='ja'){
				str = "<a href=\"javascript:saveMyVideo(\'"+lang+"\', "+videoId+", \'L\');\">後で見るように保存</a>";
			}else{
				str = "<a href=\"javascript:saveMyVideo(\'"+lang+"\', "+videoId+", \'L\');\">Add Save For Later</a>";
			}
		}

	}else if(url.match('Myfavorites')){
		elm = document.getElementById("aMyFavoriete");
		if(url.match('save')){
			if(lang=='ja'){
				str = "<a href=\"javascript:deleteMyVideo(\'"+lang+"\'\,"+videoId+", \'F\');\">お気に入りリストから外す</a>";
			}else{
				str = "<a href=\"javascript:deleteMyVideo(\'"+lang+"\'\,"+videoId+", \'F\');\">Remove From My Favorites</a>";
			}
		}else{
			if(lang=='ja'){
				str = "<a href=\"javascript:saveMyVideo(\'"+lang+"\'\, "+videoId+", \'F\');\">お気に入りに追加</a>";
			}else{
				str = "<a href=\"javascript:saveMyVideo(\'"+lang+"\'\, "+videoId+", \'F\');\">Add To My Favorites</a>";
			}
		}

	}
	elm.innerHTML=str;
}

/**
*
*/
function changeCurrency(lang)
{
	var lg = lang;
	var host = top.location.host;
	var index = document.plan_form.currency.selectedIndex;
    var selectedCode = document.plan_form.currency.options[index].value;

	//if subdomain is my, call Changecurrency controller under my.
	if(host.match('my')){
		var url = MY_URL+lg+"/Changecurrency";
	}else{
		var url = HM_URL+lg+"/Changecurrency";
	}

	var param = new Array(2);
    param['currencyCode'] = new Array(selectedCode);

	var reqParamStr = "currencyCode="+selectedCode;
    siteRequest(url, lang, reqParamStr, param, replaceCurrencyList);

	if(siteRequest(url, lang, reqParamStr, param,  replaceCurrencyList)==1000){
		//this is for firefox ver1
		redirect(location.hostname+location.pathname);
    }
}

/*
*/
function replaceCurrencyList(obj, lg, obj2)
{
	var linkStr="";
	var comlinkStr="";
	var auth = false;

	var pelm = document.getElementById('pplan');
	
	if(pelm.innerHTML.match('Login')){
		auth = true;
	}
	var currencyCode = obj.responseXML.getElementsByTagName('currencyCode')[0].firstChild.data;	
	var count = obj.responseXML.getElementsByTagName('plan').length;
	for(var i=0; i<count; i++){
		var planId = obj.responseXML.getElementsByTagName('plan')[i].
        getElementsByTagName('planId')[0].firstChild.data;

        var minutes = obj.responseXML.getElementsByTagName('plan')[i].
        getElementsByTagName('minutes')[0].firstChild.data;

        var price = obj.responseXML.getElementsByTagName('plan')[i].
        getElementsByTagName('price')[0].firstChild.data;

        if(lg=='ja'){
			if(auth){
                linkStr += "<li><a href='"+MY_URL+lg+
                    "/Purchase/planId/"+planId+"'/>"+minutes+"分間 "+price+"</a></li>\n";
            }else{
                linkStr += "<li><a href='"+MY_URL+lg+
                    "/Login'/>"+minutes+"分間 "+price+"</a></li>\n";
            }
        }else{
			if(auth){
                linkStr += "<li><a href='"+MY_URL+lg+
                    "/Purchase/planId/"+planId+"'/>"+minutes+"Minutes "+price+"</a></li>\n";
            }else{
                linkStr += "<li><a href='"+MY_URL+lg+
                    "/Login'/>"+minutes+"Minutes "+price+"</a></li>\n";
            }
		}
	}

	var comlink = document.getElementById('comlink');
    comlinkStr = comlink.innerHTML;
    comlinkStr = comlinkStr.replace(/currency_code=[A-Z]+&/, 'currency_code='+currencyCode+'&');
    comlink.innerHTML = comlinkStr;

    var pplan = document.getElementById('pplan');
    pplan.innerHTML = linkStr;

	//if the page is detail page, replace price by new currency rate.
	if(document.URL.match('Detail')){
		changeDetailPrice(lg);
	}
}

/**
* send request to get video plan
*/
function changeDetailPrice(lang)
{
	
	var lg = lang;
    var url = HM_URL+lg+"/Videoplan";

    if(document.URL.match('Detail')){
		var checkURL = /(\w+):\/\/([\w.]+)\/(ja|en)\/Detail\/Id\/(\d+)/;
        var result = document.URL.match(checkURL);
        var videoId = result[4];
    }

    var param = new Array(2);
    param['videoId'] = videoId;

	var reqParamStr = "videoId="+videoId;
    if(siteRequest(url, lang, reqParamStr, param, replaceDetailPrice)==1000){

        /*
        * for old version firefox.
        * if user browser is old version firefox, submit post reques.
        */
		redirect(location.hostname+location.pathname);
        //sendSubmitRequest('http://www.jav.com/ja/Detail', lang, param);
    }
}

/**
* replace price on detail page based on selected currency
* @param: XHMHttRequest object
* @param: string lg (language)
* @param: array  obj2 
*/
function replaceDetailPrice(obj, lg, obj2)
{
	
	var videoPrice = new Array();
    count = obj.responseXML.getElementsByTagName('videoplan').length;

    for(var i=0; i<count; i++){
        var vtype = obj.responseXML.getElementsByTagName('videoplan')[i].
            getElementsByTagName('type')[0].firstChild.data;

        var vduration = obj.responseXML.getElementsByTagName('videoplan')[i].
            getElementsByTagName('duration')[0].firstChild.data;
        var vprice = obj.responseXML.getElementsByTagName('videoplan')[i].
            getElementsByTagName('price')[0].firstChild.data;
		var vrate = obj.responseXML.getElementsByTagName('videoplan')[i].
            getElementsByTagName('currencyrate')[0].firstChild.data;
		var vpoint = obj.responseXML.getElementsByTagName('videoplan')[i].
            getElementsByTagName('decimalpoint')[0].firstChild.data;
		var vsymbol = obj.responseXML.getElementsByTagName('videoplan')[i].
            getElementsByTagName('symbol')[0].firstChild.data;
		var vcurrency = obj.responseXML.getElementsByTagName('videoplan')[i].
            getElementsByTagName('currency')[0].firstChild.data;
		var o = {
				type: vtype, 
				duration: vduration, 
				price: vprice, 
				rate: vrate, 
				point: vpoint, 
				symbol: vsymbol,
				currency: vcurrency};

		videoPrice[i] = o; 
	}
	if(document.getElementById('r7')){
		document.getElementById('r7').innerHTML = getPrice( videoPrice, 'r7', lg);
	}
	if(document.getElementById('d7')){
		document.getElementById('d7').innerHTML = getPrice( videoPrice, 'd7', lg);
	}
	if(document.getElementById('d30')){
        document.getElementById('d30').innerHTML = getPrice( videoPrice, 'd30', lg);
    }
	if(document.getElementById('d1')){
        document.getElementById('d1').innerHTML = getPrice( videoPrice, 'd1', lg);
    }
	if(document.getElementById('od1')){
		document.getElementById('od1').innerHTML = getPrice( videoPrice, 'od1', lg);
	}	
}

/**
* calculate price to display based on video price and currency rate
* @param: object obj (video plan information)
* @param: string type (video plan type on detail page)
*/
function getPrice(obj, type, lg){
	
	var videoType;
	var duration;

	switch(type){
	case 'r7':
		videoType = 'rental';
		duration = 'd7';		
		break;
	case 'd7':
		videoType = 'download';
        duration = 'd7';
		break;
	case 'd30':
		videoType = 'download';
        duration = 'd30';
		break;
	case 'd1':
		videoType = 'download';
        duration = 'd1';
		break;
	case 'od1':
		videoType = 'own';
		duration = 'd1';	
	}	
	var price=0;
	for(var i=0; i<obj.length; i++){
		if(obj[i]['type']==videoType && obj[i]['duration']==duration){
			price = obj[i]['price']*obj[i]['rate'];
			price = price.toFixed(obj[i]['point']);

			var symbolStr = obj[i]['symbol'].split(",");
			var s="";
			for(var k=0; k<symbolStr.length; k++){
				s += "&#"+symbolStr[k];
			}
			if(obj[i]['currency'] == "JPY" && lg == 'ja'){
				return ' '+price + "円";
			}else{
				return ' '+s+' '+price;
			}
		}
	} 
}

/**
* Function for page switch link on focus star page
* (ie. http://www.jav.com/ja/Star/Focus/Letter/A/list/all)
* 
*/
function viewStarList(lang, text, image, gender, search)
{
	var lg = lang;
	var imageFlag=0;
	var style;
	var sl="";


    //var url = "http://www.jav.com/"+lg+"/Star/searchstar";
	var url = HM_URL+lg+"/Star/searchstar";

	if(gender=="male" || gender=="female" || gender=="tvts" || gender=="all")
	{
		style = document.getElementById("viewStyle").innerHTML;
		if(style=='image'){
			imageFlag = 1;
		}	
	}else if(image.length==0){
		style = imageFlag = document.getElementById("viewStyle").innerHTML;
		if(style=='image'){
			imageFlag = 1;
		}
	}else{
		imageFlag = image;
	}

	if(text == undefined || text.length==0){
		sl = document.getElementById("selectedLetter").innerHTML;
	}else{
		sl = text;
	}

	if(gender == undefined || gender.length<=1){
		var sg = document.getElementById("gender").innerHTML;
	}else{
		var sg = gender;
	}

	if(!search){
		 var viewTypeList = new Array(
			"femaleText", "femaleImage", "maleText", 
			"maleImage", "tvtsText", "tvtsImage", "allText", "allImage");
		
		for(i=0; i<viewTypeList.length; i++){
			elm = document.getElementById(viewTypeList[i]);
			elm.style.display = 'none';
		}
		if(imageFlag==1){
			var blockId = sg+"Image";
			document.getElementById("viewStyle").innerHTML = 'image';
		}else{
			var blockId = sg+"Text";
			document.getElementById("viewStyle").innerHTML = 'text';
		}
        elm = document.getElementById(blockId);
        elm.style.display = 'block';

		document.getElementById("gender").innerHTML = sg;
		
		document.getElementById("viewStyle").innerHTML;
    }else{
		var param = new Array(4);
		param['searchLetter'] = sl;
		param['oneCharFlag'] = true;
		param['imageFlag'] = imageFlag;
		param['gender'] = sg;

		sendSubmitRequest(HM_URL+lg+"/Star/Focus", lang, param);
	}
}

function sendSubmitRequest(url, lang, param){
    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", url);
    for(var key in param){
         var hiddenField;
        hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", param[key]);
        form.appendChild(hiddenField);
    }
    form.appendChild(hiddenField);
    document.body.appendChild(form);    // Not entirely sure if this is necessary
    form.submit();
}

function JumpToURL(form)
{
    var IndexName = form.select_name.selectedIndex;
    var url= form.select_name.options[IndexName].value;
    if (url != "-") location.href = url;
}
