';
reload('cap1',1);
}
function cancelreply(id){
document.getElementById(id).innerHTML = '
Reply to Comment |
Report';
}
function slidedown(id){
var newvar = id.slice(0, -1) + 'b';
Effect.SlideDown(id,{ queue: 'end'});
Effect.SlideDown(newvar,{ queue: 'end'});
}
function addcomment(id,fid)
{
new Ajax.Request('../ajaxhelper/addcomment.php?id=' + id,
{
method: 'post',
parameters: $(fid).serialize(),
onSuccess: function(transport) {
var error = transport.responseText;
if(error == 'again') alert('An unexpected error occurred. Please refresh your browser and try again.');
else if(error == 'error1') alert('Please slow down. You can only submit 20 comments every 2 hour(s).');
else if(error == 'error2') alert('Your ability to submit comments has been disabled by the administrator.');
else if(error == 'error3') alert('This IP address has been banned from commenting. We apologize for the inconvenience.');
else if(error == 'error4'){
alert('You have entered the image key incorrectly. Please try again.');
if( document.getElementById('cap2') != null ) reload('cap1',1); else reload('cap1');
}
else if(error == 'error5') alert('Please only enter alphanumeric characters (letters and numbers) for your name.');
else if(error == 'error6') alert('Please check your comment. It must be at least 10 characters in length and no more than 1500.');
else if(error == 'error7') alert('Please check the name you entered. It must be at least 4 characters in length and no more than 20.');
else if(error == 'repost') alert('This exact comment has already been posted for this tutorial.');
else if(id == 0) {
window.location = "?1714214995#new";
}else{
var response = transport.responseText.split("*$*@*");
Element.setOpacity(id, 0.0);
document.getElementById(id).style.marginLeft = '';
document.getElementById(id).innerHTML = '
';
Effect.Appear(id);
}//end of else
}
,
onFailure: function(){ alert('Something went wrong. Please refresh your browser.') }
} );
}
function reload(img,optional){
var rand = (new Date()).getTime();
document.getElementById(img).src = document.getElementById(img).src + '?' + rand;
if(optional == 1) document.getElementById('cap2').src = document.getElementById(img).src;
}
function newcomment(id){
Effect.SlideDown(id + 'a');
}
function report(id){
new Ajax.Request('../ajaxhelper/reportcomment.php',
{
method:'get',
parameters: {comment: id},
onSuccess: function(transport){
if(transport.responseText == 'error1') {
alert('Invalid comment.');
}else if(transport.responseText == 'already'){
alert('You have already reported this comment.');
}else if(transport.responseText == 'good'){
alert('Thank you.');
}
},
onFailure: function(){ alert('Something went wrong. Please refresh your browser.') }
});
}
function getCookie( check_name ) {
// first we'll split this cookie up into name/value pairs
// note: document.cookie only returns name=value, not the other components
var a_all_cookies = document.cookie.split( ';' );
var a_temp_cookie = '';
var cookie_name = '';
var cookie_value = '';
var b_cookie_found = false; // set boolean t/f default f
for ( i = 0; i < a_all_cookies.length; i++ )
{
// now we'll split apart each name=value pair
a_temp_cookie = a_all_cookies[i].split( '=' );
// and trim left/right whitespace while we're at it
cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
//cookie_name = cookie_name.replace(/\+/," ");
// if the extracted name matches passed check_name
if ( cookie_name == check_name && alphaNumericCheck(a_temp_cookie[1]))
{
b_cookie_found = true;
// we need to handle case where cookie has no value but exists (no = sign, that is):
if ( a_temp_cookie.length > 1 )
{
cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
}
// note that in cases where cookie is initialized but no value, null is returned
return cookie_value;
break;
}
a_temp_cookie = null;
cookie_name = '';
return "";
}
if ( !b_cookie_found )
{
return null;
}
}
function alphaNumericCheck(word){
var regex=/^[0-9A-Za-z +]+$/;
if(regex.test(word))
return true;
else return false;
}
function ratetutorial(type,id){
new Ajax.Request('../ajaxhelper/ratetutorial.php',
{
method:'get',
parameters: {tutorial: id, type: type},
onSuccess: function(transport){
var response = transport.responseText || "no response text";
var mySplitResult = response.split(".");
var rating = "";
if(mySplitResult[0] == 'already') {
alert('You\'ve already rated this tutorial.');
}else if(mySplitResult[0] == 'own'){
alert('You cannot rate your own tutorial.');
}else if(mySplitResult[0] == 'error'){
alert('An unexpected error occurred. Please refresh your browser and try again.');
}else if(mySplitResult[0] == 'much'){
alert('You can only rate '+ mySplitResult[1] +' tutorials every '+ mySplitResult[2] +' minutes');
}else if(mySplitResult[0] == 'much2'){
alert('Please login to rate more tutorials.');
}else if(mySplitResult[0] == 'success'){
if( mySplitResult[1]< 0)
rating = '
' + mySplitResult[1].replace(/\-/, "- ") + '';
else if (mySplitResult[1]> 0)
rating = '
+ ' + mySplitResult[1] + '';
else rating = '';
document.getElementById('tutbutton').innerHTML = '
';
Element.setOpacity('tutrating', 0.0);
document.getElementById('tutrating').innerHTML = rating;
Effect.Appear('tutrating');
}else alert('Something went wrong. Please refresh your browser.');
},
onFailure: function(){ alert('Something went wrong. Please refresh your browser.') }
});
}
function updatestats(id)
{
new Ajax.Request('../ajaxhelper/tutorialstats.php',
{
method:'get',
parameters: {tutorial: id},
onSuccess: function(transport){
var response = transport.responseText || "no";
var mySplitResult = response.split(".");
if(mySplitResult.length == 2)
{
document.getElementById("views").innerHTML = mySplitResult[0]; //easy one
var rating = parseInt(mySplitResult[1])
if(rating < 0)
{
document.getElementById("rating1").innerHTML = '
- ' + Math.abs(rating) + '';
document.getElementById("tutrating").innerHTML = '
- ' + Math.abs(rating) + '';
}
else if(rating > 0)
{
document.getElementById("rating1").innerHTML = '
+ ' + Math.abs(rating) + '';
document.getElementById("tutrating").innerHTML = '
+ ' + Math.abs(rating) + ''
}
else //rating = 0
{
document.getElementById("rating1").innerHTML = 'None';
document.getElementById("tutrating").innerHTML = '0';
}
//this is the "big" one
}
},
onFailure: function(){ alert('Something went wrong. Please refresh your browser.') }
});
}
/***********************************************
* Fixed ToolTip script- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
var tipwidth='150px' //default tooltip width
var tipbgcolor='lightyellow' //tooltip bgcolor
var disappeardelay=2000 //tooltip disappear speed onMouseout (in miliseconds)
var vertical_offset="0px" //horizontal offset of tooltip from anchor link
var horizontal_offset="-3px" //horizontal offset of tooltip from anchor link
/////No further editting needed
var ie4=document.all
var ns6=document.getElementById&&!document.all
if (ie4||ns6)
document.write('
')
function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}
function showhide(obj, e, visible, hidden, tipwidth){
if (ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=tipwidth
}
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
obj.visibility=visible
else if (e.type=="click")
obj.visibility=hidden
}
function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
if (whichedge=="rightedge"){
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
}
else{
var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
}
return edgeoffset
}
function fixedtooltip(menucontents, obj, e, tipwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidetip()
dropmenuobj=document.getElementById? document.getElementById("fixedtipdiv") : fixedtipdiv
dropmenuobj.innerHTML=menucontents
if (ie4||ns6){
showhide(dropmenuobj.style, e, "visible", "hidden", tipwidth)
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
}
delayhidetip();
}
function hidetip(e){
if (typeof dropmenuobj!="undefined"){
if (ie4||ns6)
dropmenuobj.style.visibility="hidden"
}
}
function delayhidetip(){
if (ie4||ns6)
delayhide=setTimeout("hidetip()",disappeardelay)
}
function clearhidetip(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}