var DynUrl = "http://www.blackgreekdating.com/dynamic/"; var URLGetList = DynUrl + "get_list.php?"; var requestsQueue = new Array(); var arrInitialValuesOfAsyncFields = new Array(); var updatedFields = new Array(); /* * updateList - function updates options list in drop-down box */ function updateList(dataType,targetField,filterFlag) { if (document.getElementById(targetField) && document.getElementById(targetField).type == "select-one") switch (dataType) { case "FState": case "State": case "FCity": case "FOrg": case "City": case "University": case "Zip": case "MailSubj": clearSelection(targetField); selection = document.getElementById(targetField); optionObject = new Option('Loading...', 'null', false, false); selection.options[selection.length] = optionObject; var URLRequestString = "dataType="+dataType+"&"+filterFlag; addRequestToQueue(URLRequestString, dataType, targetField); break; } } function addRequestToQueue(URLRequestString, fromTag, toField) { requestsQueue[requestsQueue.length] = new QueueItem(URLGetList+URLRequestString, fromTag, toField); if (requestsQueue.length == 1) doSendRequest(); } function QueueItem(url, fromTag, toField) { this.url=url; this.fromTag=fromTag; this.toField=toField; } function doSendRequest() { globalObjXmlHttpRequest = createXmlHttpObject(); if ( globalObjXmlHttpRequest ) { /*if( requestsQueue[0] ) { alert( requestsQueue[0].url ); window.open( requestsQueue[0].url ); }*/ globalObjXmlHttpRequest.onreadystatechange = RecieveData; globalObjXmlHttpRequest.open("GET", requestsQueue[0].url); globalObjXmlHttpRequest.send(null); //window.open( requestsQueue[0].url ); //debug - just uncomment and view: //window.open(requestsQueue[0].url); } } function createXmlHttpObject() { var objXmlHttp = false; if ( window.XMLHttpRequest ) objXmlHttp = new XMLHttpRequest(); else if ( window.ActiveXObject ) objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); return objXmlHttp; } function RecieveData() { if(globalObjXmlHttpRequest.readyState == 4) { // Dequeue request and run the handler if ((requestData = requestsQueue.shift()) == null) throw new Error('Internal error: queue is empty'); if (globalObjXmlHttpRequest.status == 200) { clearSelection(requestData.toField); fillSelectionWithXmlData(requestData.fromTag, requestData.toField, globalObjXmlHttpRequest.responseXML); } if (requestsQueue.length > 0) doSendRequest(); selection = document.getElementById(requestData.toField); if (arrInitialValuesOfAsyncFields[requestData.toField] != undefined && arrInitialValuesOfAsyncFields[requestData.toField] != '') selection.value = arrInitialValuesOfAsyncFields[requestData.toField]; arrInitialValuesOfAsyncFields[requestData.toField]=null; selection = document.getElementById(requestData.toField); if (typeof(selection.onchange) == 'function') selection.onchange(); // Perform chain action } } function clearSelection(selectionID) { var selection = document.getElementById(selectionID); for (var i = selection.options.length - 1; i >= 0; i--) { selection.options[i] = null; } } function fillSelectionWithXmlData(targetXmlTagName, selectionID, xmlNode) { var selection = document.getElementById(selectionID); var options = xmlNode.getElementsByTagName(targetXmlTagName); for (var optionIndex = 0; optionIndex <= options.length - 1; optionIndex++) { var optionData = options[optionIndex].childNodes; var optionID = ''; var optionValue = ''; for (var propertyIndex = 0; propertyIndex <= optionData.length - 1; propertyIndex++) { if (optionData[propertyIndex].nodeType == 1 && optionData[propertyIndex].nodeName == 'ID') optionID = getNodeText(optionData[propertyIndex]); if (optionData[propertyIndex].nodeType == 1 && optionData[propertyIndex].nodeName == 'Name') optionValue = getNodeText(optionData[propertyIndex]); } optionObject = new Option(optionValue, optionID, false, false); selection.options[selection.length] = optionObject; } } // Retreives inner text of XML node (cross-browsing) function getNodeText(node) { return (node.textContent || node.innerText || node.text) ; } function updateAsyncFields() { if (updatedFields.length>0) { for (FieldIndex=0;FieldIndex'; initval = arrInitialValuesOfAsyncFields[field.name]; //maybe this feature is buggie if ( initval != 'null' && initval != 'na' && initval != '0' ) NewVal = initval; break; case arrFieldDefault[fieldID].type: NewCode = arrFieldDefault[fieldID].code; NewVal = arrFieldDefault[fieldID].value; break; } container.innerHTML = NewCode; //Inserting new field field = document.getElementById(fieldID); //then we refreshing link to field field.value = NewVal; } function changeDaysOfMonth( year, month, daysFieldID ) { if ( isNaN(month) ) month = 0; if ( isNaN(year) ) year = 0; month = new Number(month); daysField = document.getElementById(daysFieldID); if ( !daysField ) return; var arrMonthDays = new Array( 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ); if ( year % 4 == 0 && month == 2 ) totalDays = 29; else totalDays = arrMonthDays[month]; currentDay = daysField.value; if ( currentDay > totalDays ) currentDay = totalDays; clearSelection( daysFieldID ); for ( indDay = 1; indDay <= totalDays; indDay ++ ) { optionObject = new Option(indDay, indDay, (currentDay == indDay ? true : false), false); daysField.options[daysField.length] = optionObject; } daysField.value = currentDay; } function updateText( url, elem ) { objXmlHttp = createXmlHttpObject(); if ( objXmlHttp && url && elem ) { objXmlHttp.onreadystatechange = function() { if ( objXmlHttp.readyState == 4 && objXmlHttp.status == 200 ) { if ( elem.innerHTML ) elem.innerHTML = objXmlHttp.responseText; else elem.value = objXmlHttp.responseText; } } objXmlHttp.open( "GET", url ); objXmlHttp.send( null ); } } function savePredefMail( subj, body, _handler ) { if ( !subj || subj == "null" ) { alert( 'You not selected Subject' ); return false; } if ( !body ) { alert( 'You not entered Message' ); return false; } _mailID = new Number( subj ); if ( _mailID > 0 ) { if ( confirm( 'Are you sure want to update this template?' ) ) _postDataSubj = 'id=' + _mailID; else return false; } else _postDataSubj = 'subj=' + escape(subj); _postDataBody = 'body=' + escape(body); objXmlHttp = createXmlHttpObject(); if ( objXmlHttp ) { objXmlHttp.onreadystatechange = function() { if ( objXmlHttp.readyState == 4 && objXmlHttp.status == 200 ) { newMailID = new Number( objXmlHttp.responseText ); if ( newMailID > 0 ) { alert( 'Template succesfully saved' ); if ( _handler ) _handler( newMailID ); } else { alert( 'Couldn\'t save template. Internal error occured' ); alert( objXmlHttp.responseText ); } } } objXmlHttp.open( "POST", DynUrl + 'predef_mail.php' ); objXmlHttp.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' ); objXmlHttp.send( 'act=save&' + _postDataSubj + '&' + _postDataBody ); } } function deletePredefMail( _mailID ) { if ( !confirm( 'Are you sure want to delete this template?' ) ) return false; objXmlHttp = createXmlHttpObject(); if ( objXmlHttp ) { objXmlHttp.onreadystatechange = function() { if ( objXmlHttp.readyState == 4 && objXmlHttp.status == 200 ) { updateList( 'MailSubj', 'mail_subj', '' ); } } objXmlHttp.open( "GET", DynUrl + 'predef_mail.php?act=del&id=' + _mailID ); objXmlHttp.send( null ); } } function homeRegCheck() { _form = document.forms.join_form; if ( !_form ) return false; clearHomeRegErr(); isCorrect = true; if ( !_form.NickName.value ) { genHomeRegErr( 'NickName', 'You should enter Username', isCorrect ); isCorrect = false; } if ( !_form.Password1.value ) { genHomeRegErr( 'Password1', 'You should enter Password', isCorrect ); isCorrect = false; } else { if ( _form.Password1.value.length < 5 ) { genHomeRegErr( 'Password1', 'It must be at least 5 chars', isCorrect ); isCorrect = false; } else { if ( _form.Password1.value != _form.Password2.value ) { genHomeRegErr( 'Password1', 'Password verification failed', isCorrect ); isCorrect = false; } } } if ( !_form.Email1.value ) { genHomeRegErr( 'Email1', 'You should enter E-mail', isCorrect ); isCorrect = false; } else { if ( !emailCheck(_form.Email1.value) ) { genHomeRegErr( 'Email1', 'E-mail is incorrect', isCorrect ); isCorrect = false; } else { if ( _form.Email1.value != _form.Email2.value ) { genHomeRegErr( 'Email1', 'Email verification failed', isCorrect ); isCorrect = false; } } } if ( !_form.i_agree.checked ) { genHomeRegErr( 'i_agree', 'You should read terms of use', isCorrect ); isCorrect = false; } if ( isCorrect ) { objXmlHttp = createXmlHttpObject(); if ( objXmlHttp ) { objXmlHttp.onreadystatechange = function() { if ( objXmlHttp.readyState == 4 && objXmlHttp.status == 200 ) { xmlNode = objXmlHttp.responseXML; result = getNodeText( xmlNode.getElementsByTagName('result')[0] ); if ( result == 'OK' ) document.forms.join_form.submit(); else { errorNodes = xmlNode.getElementsByTagName('errors')[0].childNodes; for ( ind = 0; ind < errorNodes.length; ind ++ ) { errorNode = errorNodes[ind]; if ( errorNode.nodeType == 1 ) genHomeRegErr( errorNode.nodeName, getNodeText(errorNode) ); } } } } objXmlHttp.open( "GET", DynUrl + 'homereg_chk.php?NickName=' + escape(_form.NickName.value) + '&Email=' + escape(_form.Email1.value) ); objXmlHttp.send( null ); } else { _form.submit(); } } return false; } function clearHomeRegErr() { arrFields = new Array( 'NickName', 'Password1', 'Email1', 'i_agree' ); for ( ind = 0; ind < arrFields.length; ind++ ) { _elem = document.getElementById( arrFields[ind] + '_err' ); if ( _elem ) _elem.style.display = 'none'; } } function genHomeRegErr( field, err, toSelect ) { /*_elem = document.getElementById( field + '_err' ); if ( _elem ) { _elem.innerHTML = err; _elem.style.display = 'block'; if ( toSelect ) document.forms.join_form[field].focus(); }*/ _elem = document.getElementById( field ); if ( _elem ) { _elem.style.border = '1px solid red'; } _elem2 = document.getElementById( field + '_err2' ); if ( _elem2 ) { _elem2.style.display = 'block'; //showFloatDesc(err); _elem2.onmouseover = function() {showFloatDesc(err); } } }