// form lib
var editingLabel = false;
var editorId;
var orginalText;
var animationCB;

function postEditInPlace(entity, name, promptName, idOfEditor, enteredText, orinalHTMLContent, animationCallbacks, miscUpdate) {
	editingLabel = true;
	editorId = idOfEditor;
	orginalText = orinalHTMLContent;
	animationCB = animationCallbacks;
	
	animationCB.didStartSaving();
	$.ajax({
		type: 'POST',
		url: '/cmd_editinplace.asp',
		data: 'entity=' + entity + '&name=' + name + '&val=' + encodeURIComponent(enteredText) + '&key=' + encodeURIComponent(getCookie('SessionKey')),
		contentType: 'application/x-www-form-urlencoded',
		success: function(data) {
			if (data == '0') {
				if (miscUpdate != null)
					miscUpdate();
			} else {
				alert('更新' + promptName + '时发生了一个错误。');
				document.getElementById(editorId).innerHTML = orginalText;
			};
			animationCB.didEndSaving();
			editingLabel = false;
		},
		error: function(XMLHttpRequest, textStatus, errorThrown) {
			alert('更新' + promptName + '时发生了一个错误。');
			document.getElementById(editorId).innerHTML = orginalText;
			animationCB.didEndSaving();
			editingLabel = false;
		}
	});
}

function showMessage(textId, textClass, msg) {
	document.getElementById(textId).innerHTML = msg;
	document.getElementById(textId).className = textClass;
}

function highlightInput(formName, inputName) {
	var theInput = document.forms[formName].elements[inputName];
	theInput.focus();
	theInput.style.background='#FFCCFF';
}

function resetInputColor(formName) {
	var inputs = document.forms[formName].elements;
	for (var i = 0; i < inputs.length; i ++) {
		if (inputs[i].type != 'button' && 
			inputs[i].type != 'submit' &&
			inputs[i].type != 'reset')
		inputs[i].style.background='';
	}
}

function promptForInput(formName, inputName, msg) {
	var theInput = document.forms[formName].elements[inputName];
	theInput.focus();
	if (msg != "") {
		theInput.style.background='#FFCCFF';
		alert(msg);
	}
}

function isEmpty(formName, inputName, msgTxtId, msgTxtClass, msg) {
	var val = document.forms[formName].elements[inputName].value;
	if (val.length == 0) {
		highlightInput(formName, inputName);
		showMessage(msgTxtId, msgTxtClass, msg);
		return true;
	} else {
		return false;
	}
}

function formatNumber(num, length) {
	var str = '' + num;
	while (str.length < length)
		str = '0' + str;
	return str;
}

function checkNumber(data, minlength) {
	if (data == '')
		return minlength == 0;
	else
		return (!isNaN(data)) && data.length >= minlength;
}

function checkEmail(str) {
	var at='@';
	var dot='.';
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1){
		return false;
	};

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	};

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}

	if (str.indexOf(at,(lat+1))!=-1){
	    return false;
	}

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false;
	}

	if (str.indexOf(dot,(lat+2))==-1){
	    return false;
	}
		
	if (str.indexOf(' ')!=-1){
	    return false;
	}

	return true;			
}

function checkUrl(str) {
	var v = new RegExp(); 
    v.compile("^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%\$#_]*)?$"); 
    return v.test(str); 
}

function changeGifCode(gifImgId) {
	var tmp = new Date(); 
	document.getElementById(gifImgId).src = '/gifcode.asp?' + tmp.getTime();
}

function getRadioValue(formName, radioName) {
	for (var i = 0; i < document.forms[formName].elements[radioName].length; i ++) {
		if (document.forms[formName].elements[radioName][i].checked) {
			return document.forms[formName].elements[radioName][i].value;
		}
	}
	return '';
}

function setRadioValue(formName, radioName, val) {
	for (var i = 0; i < document.forms[formName].elements[radioName].length; i ++) {
		document.forms[formName].elements[radioName][i].checked = (document.forms[formName].elements[radioName][i].value == val);
	}
}

function setSelectValue(formName, selectName, val) {
	for (var i = 0; i < document.forms[formName].elements[selectName].options.length; i ++) {
		if (document.forms[formName].elements[selectName].options[i].value == val) {
			document.forms[formName].elements[selectName].options[i].selected = true;
			return;
		}
	}
}

function getFileExtension(fileName) {
	var i = fileName.lastIndexOf('.');
	if ((i > 0) && (i < (fileName.length - 1))) {
		return fileName.substring(i + 1);
	} else {
		return '';
	}
}

function checkImageFileType(fileName) {
	var fileExtension = getFileExtension(fileName);
	fileExtension = fileExtension.toUpperCase();
	return (fileExtension == "JPG") || (fileExtension == "JPEG") || (fileExtension == "JPE") || (fileExtension == "JFIF") || (fileExtension == "TIF") || (fileExtension == "TIFF") || (fileExtension == "PNG") || (fileExtension == "GIF");
}

function checkMusicFileType(fileName) {
	var fileExtension = getFileExtension(fileName);
	fileExtension = fileExtension.toUpperCase();
	return (fileExtension == "MP3");
}

function trimField(field) {
	var fieldData = field.value;
	field.value = fieldData
		.replace(/^\s+/, '')
		.replace(/\s+$/, '');	
}

function warnQQ(field, msgid) {
	var fieldData = field.value;
	var i = fieldData.lastIndexOf('@');
	var emailDomail;
	
	if ((i > 0) && (i < (fieldData.length - 1))) {
		emailDomail = fieldData.substring(i + 1).toLowerCase();
	} else {
		emailDomail = '';
	}
	
	if (emailDomail == 'qq.com' || emailDomail == 'vip.qq.com')
		document.getElementById(msgid).style.display = '';
	else
		document.getElementById(msgid).style.display = 'none';
}

function getCookie(name) {
		var start = document.cookie.indexOf(name + "=");
		var len = start + name.length + 1;
		if ((!start) && (name != document.cookie.substring(0, name.length))) {
			return null;
		}
		if (start == -1) return null;
		
		var end = document.cookie.indexOf(';', len);
		if (end == -1) end = document.cookie.length;
		return decodeURIComponent(document.cookie.substring(len, end));
	}

// sub form

var sb_processing = true;

function pageReady() {
	sb_processing = false;
	setButtonStatus(true);
}

function startProcessing() {
	sb_processing = true;
	setButtonStatus(false);	
}

function setSubFormValue(valueName, val) {
	window.frames['sub_frame'].document.getElementById(valueName).value = val;
}

function addSubFormValue(valueName, val, newLine) {
	var subDocument = window.frames['sub_frame'].document;
	
	var inputElement = subDocument.createElement('input');
	inputElement.type = 'text';
	inputElement.name = valueName;
	inputElement.value = val;
	subDocument.getElementById('sub_form').appendChild(inputElement);
	
	if (newLine) {
		brElement = subDocument.createElement('br');
		subDocument.getElementById('sub_form').appendChild(brElement);	
	}
}

function addSubFormText(textName, val, newLine) {
	var subDocument = window.frames['sub_frame'].document;
	
	var inputElement = subDocument.createElement('textarea');
	inputElement.name = textName;
	inputElement.value = val;
	subDocument.getElementById('sub_form').appendChild(inputElement);
	
	if (newLine) {
		brElement = subDocument.createElement('br');
		subDocument.getElementById('sub_form').appendChild(brElement);	
	}
}

function submitSubForm() {
	window.frames['sub_frame'].document.forms['sub_form'].submit();	
}

function subFormUpdated(result) {
	document.getElementById('sub_result').value = result;
	document.forms['main_form'].submit();
}

// sub form - remote form

function setRemoteFormValue(valueName, val) {
	window.frames['remote_frame'].document.getElementById(valueName).value = val;
}

function addRemoteFormValue(valueName, val, newLine) {
	var subDocument = window.frames['remote_frame'].document;
	
	var inputElement = subDocument.createElement('input');
	inputElement.type = 'text';
	inputElement.name = valueName;
	inputElement.value = val;
	subDocument.getElementById('remote_form').appendChild(inputElement);
	
	if (newLine) {
		brElement = subDocument.createElement('br');
		subDocument.getElementById('remote_form').appendChild(brElement);	
	}
}

function submitRemoteForm() {
	window.frames['remote_frame'].document.forms['remote_form'].submit();	
}
