﻿//收集信息
$().ready(function(){
    $('#add').val('Add sentence');
    $('#btnCusPart1').val('Ready to submit');
    $('#btnSubmit').val('Submit');
    $('#btnProofReady').val('Ready to submit');
    $('#btnProofBack').val('Back');
    $('#btnProof').val('Submit');
    $('#btnEngProofReady').val('Next');
    $('#btnEngProofBack').val('Back');
    $('#btnEngProof').val('Submit');
    
})

var index = document.getElementById("AllSentences").rows.length;

function AddInputElement(contentId,newElementContainer)
{
    var v = document.getElementById(contentId).value.trim();
    var i;
    var c;
    if(v == null || v.length == 0)
        return;
        
    for(i=0;i<v.length;i++)
    {
        c = v.charAt(i);
        if(c == '&')
            v = v.replace('&','＆');
    }
    nextRow = newElementContainer.insertRow(1);
    isText = nextRow.insertCell(0);
    txtArea = nextRow.insertCell(1); 
    index++;
    index = index.toString();
    idStr = "txt"+index;
    txtArea.innerHTML = "<input type='text' id='"+idStr+"' name='txtSentence'  style='width: 750px' />&nbsp;&nbsp;";
    txtArea.innerHTML =txtArea.innerHTML + "<input type='button' id='btn" + index + "' name='btnSentence' value='Delete' onclick=\"DeleteInputElement(document.getElementById('AllSentences'),'" + idStr + "')\" />";    
    document.getElementById(idStr).value = v;
    
    document.getElementById(contentId).value = "";
    document.getElementById(contentId).focus();
}

function DeleteInputElement(newElementContainer,textElementId)
{
    var txtes = document.getElementsByName('txtSentence');
    for(var i=1;i < newElementContainer.rows.length;i++)
    {
        if(textElementId  == txtes[i-1].id)
        {
            newElementContainer.deleteRow(i);
            break;
        }
    }
}

function ReadToSubmit(persentence, miniOrder)
{
    var totalPrice=0;
    var txts = document.getElementsByName('txtSentence');
    var btns = document.getElementsByName('btnSentence');
    if(txts.length < 1)
        return;
        
    for(var i=0;i<txts.length;i++)
    {
        txts[i].disabled = 'disabled';
        btns[i].style.display = 'none';
        totalPrice += persentence;
    }
    
    if(totalPrice <= miniOrder)
        totalPrice = miniOrder;
    totalPrice = cent(totalPrice);    
    
    
    HandleSpanOfIeAndFf("sentencesPrice",totalPrice.toString());
    document.getElementById("amount").value = totalPrice.toString();
    HandleSpanOfIeAndFf("sentencesTitle","Verify");
    document.getElementById("cuspart1").style.display = 'none';
    document.getElementById("btnCusPart1").style.display='none';
    document.getElementById("btnCusBack").style.display = '';
    document.getElementById("customLesson").style.display = '';
}

function BackToCusPart1()
{
    var txts = document.getElementsByName('txtSentence');
    var btns = document.getElementsByName('btnSentence');
    for(var i=0;i<txts.length;i++)
    {
        txts[i].disabled = '';
        btns[i].style.display = '';
    }
    HandleSpanOfIeAndFf("sentencesTitle","");
    document.getElementById("cuspart1").style.display = '';
    document.getElementById("btnCusPart1").style.display='';
    document.getElementById("customLesson").style.display = 'none';
    document.getElementById("btnCusBack").style.display = 'none';
}

function ProofReadToSubmit(firstPrice,firstChar,lastPrice,lastChar)
{
    var proofContent = document.getElementById("txtproof").value.toString().trim();
    if(proofContent.length <= 0)
        return;
        
    var chineseCharCount=0;
    var englishCharCount=0;
    var blacklist = "~!@#$%^&*()_+|`-=\{}[]:\";\<>?,./";
    var chineseblacklist = "～@#￥%……&×（）——+|‘’-=、『』【】：《》？，。";
    var englishChars="";
    for(var i=0; i<proofContent.length; i++)
    {
        var c = proofContent.charAt(i);
        if(proofContent.charCodeAt(i) > 255 && chineseblacklist.indexOf(c) < 0)
            chineseCharCount++;
        else if(blacklist.indexOf(c) < 0 && chineseblacklist.indexOf(c) < 0)
                englishChars += proofContent.charAt(i);
        
        if(c == '&'){
            proofContent = proofContent.replace('&','＆');
       }
    }
    
    document.getElementById("txtproof").value = proofContent;
    
    if(englishChars.trim().length > 0)
        englishCharCount = englishChars.split(' ').length;
    
    var price = 0.00;
    if((chineseCharCount+englishCharCount) <= firstChar)
        price  = firstPrice;
    if((chineseCharCount+englishCharCount) > firstChar)
    {
        price += ((chineseCharCount+englishCharCount)/lastChar) * lastPrice + firstPrice;
    }
    price = Math.round  (price*Math.pow(10,2))/Math.pow(10,2);  
    price = cent(price);
    
    HandleSpanOfIeAndFf("proofPrice",price);
    HandleSpanOfIeAndFf("proofChar",(chineseCharCount+englishCharCount));
    document.getElementById("amount").value = price;    
    document.getElementById("txtproof").disabled = 'disabled';
    document.getElementById("btnProofReady").style.display = 'none';
    
    document.getElementById("btnProofBack").style.display = '';
    document.getElementById("proofPart2").style.display = '';
    document.getElementById("proofPart1").style.display = 'none';
        
    HandleSpanOfIeAndFf("prooftitle","Verify");
}
function BackToProofPart1()
{
    document.getElementById("txtproof").disabled = '';
    document.getElementById("btnProofReady").style.display = '';
    
    document.getElementById("btnProofBack").style.display = 'none';
    document.getElementById("proofPart2").style.display = 'none';
    document.getElementById("proofPart1").style.display = '';
    
    HandleSpanOfIeAndFf("prooftitle","");
}

function EnglishProofReady()
{
    var proofEng = document.getElementById("txtEngProof").value.toString().trim();
    if(proofEng.length <= 0)
        return;
        
    HandleSpanOfIeAndFf("engProoftitle","Verify");
    document.getElementById("txtEngProof").disabled = 'disabled';
    document.getElementById("btnEngProofReady").style.display = 'none';
    document.getElementById("btnEngProofBack").style.display = '';
    
    document.getElementById("engProofPart2").style.display = '';
    document.getElementById("engProofPart1").style.display = 'none';
}

function BackToEngProofPart1()
{
    HandleSpanOfIeAndFf("engProoftitle","");
    document.getElementById("txtEngProof").disabled = '';
    document.getElementById("btnEngProofReady").style.display = '';
    document.getElementById("btnEngProofBack").style.display = 'none';
    
    document.getElementById("engProofPart2").style.display = 'none';
    document.getElementById("engProofPart1").style.display = '';
}

function GetAllSentences()
{
    var txts = document.getElementsByName('txtSentence');
    var sentenceContent="";
    for(var i=0;i<txts.length;i++)
    {
        sentenceContent += txts[i].value.trim() + "<br>";
    }
    
    var paymentType;
    var isShare;
    if(document.getElementById("rdbBank").checked)
        paymentType = 'bank';
    else
        paymentType = 'paypal';
        
    if(document.getElementById("ckbShare").checked)
        isShare = '1';
    else
        isShare = '0';
    
    var userInfo = "itemid=" + document.getElementById("itemid").value + "&itempurchased=cl" + "&content=" + sentenceContent + "&email=" + document.getElementById("txtEmail").value + "&other=";
    userInfo += "&amount=" + GetAmount("sentencesPrice") + "&paymentType=" + paymentType + "&isShare=" + isShare;
    
    return userInfo;
    
}

function GetAllContent()
{
    var contents = document.getElementById("txtproof").value.trim();
    var paymentType;
    if(document.getElementById("rabProofBank").checked)
        paymentType = 'bank';
    else
        paymentType = 'paypal';
        
    
    var userInfo = "itemid=" + document.getElementById("itemid").value + "&itempurchased=pr&content=" + contents + "&email=" + document.getElementById("txtProofEmail").value.trim() + "&other=";
    userInfo += "&amount=" + GetAmount("proofPrice") + "&paymentType=" + paymentType + "&isShare=0";
    
    return userInfo;
}

function GetAllEngProofContent()
{
    var contents = document.getElementById("txtEngProof").value.trim();
    var userInfo = "itemid=" + document.getElementById("itemid").value + "&itempurchased=fep" + "&content=" + contents + "&email=" + document.getElementById("txtEngProofEmail").value + "&other=";
    userInfo += "&amount=0&paymentType=free&isShare=0";
    
    return userInfo;
}

function GetAmount(amountId)
{
    if(document.all)
        return document.getElementById(amountId).innerText;
    else
        return document.getElementById(amountId).textContent;
}

function ViaPaypal()
{
    var pform = document.getElementById('ppform');
    
    if (pform != null)
    {
        pform.submit();
    }
    return false;
}


function HandleSpanOfIeAndFf(spanid,spanContent)
{
    if(document.all)
        document.getElementById(spanid).innerText = spanContent;
    else
        document.getElementById(spanid).textContent = spanContent;
}

function ValidateData(id)
{
    var mailAddr;
    if(id == "p_session")
    {
        mailAddr = document.getElementById("txtEmail");
        if(mailAddr.value.trim() == "")
        {
            document.getElementById("clEmailSpan").style.display = '';
            mailAddr.focus();
            return false;
        }
        else if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(mailAddr.value.trim()))
             {
                document.getElementById("clEmailSpan").style.display = '';
                mailAddr.focus();
                return false;
             }       
        
        if(!(document.getElementById("rdbBank").checked || document.getElementById("rdbPaypal").checked))
        {
            document.getElementById("clPaymentSpan").style.display = '';
            return false;
        }else
            document.getElementById("clPaymentSpan").style.display = 'none';
             
    }else if(id == "proof_session")
    {
        mailAddr = document.getElementById("txtProofEmail");
        if(mailAddr.value.trim() == "")
        {
            document.getElementById("pfEmailSpan").style.display = '';
            mailAddr.focus();
            return false;
        }    
        else if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(mailAddr.value.trim()))
             {
                document.getElementById("pfEmailSpan").style.display = '';
                mailAddr.focus();
                return false;
             }
                
        if(!(document.getElementById("rabProofBank").checked || document.getElementById("rabProofPaypal").checked))
        {
            document.getElementById("pfPaymentSpan").style.display = '';
            return false;
        }else
            document.getElementById("pfPaymentSpan").style.display = 'none';    
    }else
    {
    //modify date 2008 2.25
        mailAddr = document.getElementById("txtEngProofEmail");
        if(mailAddr.value.trim() == "")
        {
            document.getElementById("engPfEmailSpan").style.display = '';
            mailAddr.focus();
            return false;
        }    
        else if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(mailAddr.value.trim()))
             {
                document.getElementById("engPfEmailSpan").style.display = '';
                mailAddr.focus();
                return false;
             }
     }
    
    return true;
}


//Ajax to save payment info
function T_Load(url, id)
{
    if(!ValidateData(id))
        return;
        
    showPop('popAjax');
    document.getElementById("btnSubmit").disabled = true;
    document.getElementById("btnCusBack").disabled = true;
    document.getElementById("btnProofBack").disabled = true;
    document.getElementById("btnProof").disabled = true;
    
	g = false;
	if (window.XMLHttpRequest) {
		g = new XMLHttpRequest();
		if (g.overrideMimeType) {
			g.overrideMimeType("text/xml");
		}
	} else {
		if (window.ActiveXObject) {
			try {
				g = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e) {
				try {
					g = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {
				}
			}
		}
	}
	if (!g) {
		alert("Can not create XMLHTTP-instance");
		return false;
	}
	g.onreadystatechange = function () {
		al(id);
	};
	var allContent;
	
	//modify date:2008 2.25
	if(id == "p_session")
	    allContent = GetAllSentences();
	else if(id == "proof_session")
	        allContent = GetAllContent();
	     else
	        allContent = GetAllEngProofContent();
	    
	g.open("POST", url, true);
	g.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	g.send(allContent);
}

function al(id){
	if (g.readyState == 4) {
		if (g.status == 200) {
		//返回"1"则数据已经保存，之后再考判断是用那种付款方式，这里可以改为用余额付款。
		//modified date: 2008 4.15
			if (g.responseText == "1") {
				hidePop('popAjax');
				//修改Free proofreading.
				//date:2008 2.25
				if(id == "engProof_session")
				{
				    location.href = "customizedresult.aspx";
				    return;
				}
				
				if(id == "p_session")
				{
				    if(document.getElementById("rdbBank").checked)
				    {
				        location.href = "customizedresult.aspx?email=" + document.getElementById("txtEmail").value.trim();
				    }else
				        ViaPaypal();
				}else
				{
				    document.getElementById("item_name").value = "Proofreading";
				    if(document.getElementById("rabProofBank").checked)
				        location.href = "customizedresult.aspx?email=" + document.getElementById("txtProofEmail").value.trim();
				    else
				        ViaPaypal();
				}
			}
			
		} else {
			alert("An error has occurred during request");
		}
	}
}

//去空格
String.prototype.trim = function(){   
  return   this.replace(/(^\s*)|(\s*$)/g, "");       
}

//规定小数点后有两位
function cent(amount) {
// returns the amount in the .99 format
    amount -= 0;
    return (amount == Math.floor(amount)) ? amount + '.00' : (  (amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}


