
// email functions
function toggleEmailDialog(videoid) 
{
	var show = !Element.visible('videomail'+videoid);

	if(show) {

		if($('emailSendResult'+videoid).style.display != 'none') {		// an e-mail has already been sent
			Form.reset("videomailform"+videoid);			
			displayEmailForm(videoid);			
		}
		
		$('videocomments'+videoid).style.display = 'none';
		$('tri'+videoid).style.display = 'none';
		$('tridown'+videoid).style.display = 'inline';
		new Effect.SlideDown('videomail'+videoid);		
	    
		
		
	} else {
		new Effect.SlideUp('videomail'+videoid);
		setTimeout("cancelEmail("+videoid+")", 1000);
	}
	
}

function displayEmailForm(videoid) {
	Form.enable("videomailform"+videoid);
	$('videomailform'+videoid).style.display = 'block';			
	$('emailSendResult'+videoid).style.display = 'none';
	$('emailSendProgress'+videoid).style.display = 'none';		
}

function gotoAddComment(videoid) {
	var obj = $('addcommentform'+videoid);
	obj.comment.focus();
	obj.comment.value = '';
}

function cancelEmail(videoid) {
    
    new Effect.Appear('videocomments'+videoid);
	$('tri'+videoid).style.display = 'inline';
	$('tridown'+videoid).style.display = 'none';    
}

function videoSendMail(videoid) {
    new Effect.Appear('emailSendProgress'+videoid);
    
    var params = Form.serialize("videomailform"+videoid);
    params += "&videoid="+videoid;
	
    Form.disable("videomailform"+videoid);
	
    new Ajax.Updater('emailSendResult'+videoid, '/index.php/mailit/', 
    	{
    		method:'post',
    		evalScripts: true,
    		parameters: params,
    		asynchronous:true
    	}
    	
    	);
}

function videoSendMailShowResult(videoid) {
	new Effect.Appear('emailSendResult'+videoid);
	$('videomailform'+videoid).style.display = 'none';	
}


// general form functions

function clearIfNotChanged(obj, msg) {
	if(obj.value==msg) {
		obj.value = "";
	}
}

function setIfEmpty(obj, msg) {
	if(obj.value == "") {
		obj.value = msg;
	}
}

// comment functions

function addComment(videoid, commentmsg, namemsg) {		
	var form = $('addcommentform'+videoid);
	var comment = form.elements['comment'];
	var name = form.elements['commentname'];
	if(comment.value == commentmsg) {
		new Effect.Shake(comment);
	} else if(name.value==namemsg) {
		new Effect.Shake(name);
	} else {	
		var formname = 'addcommentform'+videoid;
		Form.disable(formname);
		var params = Form.serialize(formname);
		params += "&videoid="+videoid;
		$('addcommentbutton'+videoid).style.display = 'none';
		$('addcommentprogress'+videoid).style.display = 'inline';
		
		new Ajax.Updater('videocommentslist'+videoid, '/index.php/comment/addcomment',
			{
					method:'post',
					evalScripts: true,
					parameters: params,
					asynchronous: true
			}
		
		);
	}
	
}

/**
 * Called by server to add comment to list
 */
function addCommentToList(videoid, commentline) {
	var list = $('videocommentslist'+videoid);

	// remove all children, save them to array
	var childArr = new Array();
	for(i=0; i < list.children.length; i++) {
		childArr[i] = list.children[i];
		list.removeChild( list.children[i] );
	}

	var newText = document.createTextNode(commentline);
	var newNode = document.createElement("li");
	newNode.className = 'mycomment';
	newNode.appendChild(newText);

	// add children in correct order
	list.addChild( newNode );
	for(i=0; i < count(childArr); i++) {
		//list.addChild( childArr[i] );
	}
}


// validation scripts

/*
Copyright 2005, 4word systems
All rights reserved.

This software may not be reproduced or distributed in any form without the express 
written consent of 4word systems or it's designee.

Revision 1.1:  20050729 Added underscore to list of valid characters
*/


function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

