Few useful Installation Script(VBScript) functions


After so long I’m posting something, lately I was working on installation script of our project, and came across few good things. I’m sharing few of them here:
 
' *****************************************************************************
'Global variables
Dim objFSO, objLogFile, WsShell
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WsShell = CreateObject("WScript.Shell")
 
'Getting Program Files path
Const PROGRAM_FILES = &H26&
Dim objShell, objFolder, objFolderItem, strProgramFilesPath
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(PROGRAM_FILES)
Set objFolderItem = objFolder.Self
strProgramFilesPath = objFolderItem.Path
WScript.Echo strProgramFilesPath
 
'For getting Documents and Settings\<UserName>
Dim strUserProfileFolder
strUserProfileFolder = WsShell.Environment("PROCESS")("UserProfile")
WScript.Echo strUserProfileFolder
 
'Getting Desktop folder
Dim objDesktop
objDesktop = WsShell.SpecialFolders("Desktop")
WScript.Echo objDesktop
 
'Rename File
Function RenameFile(oldName, newName)
      If(objFSO.FileExists(oldName)) Then
            objLogFile.WriteLine( oldName & "File found and renaming/moving it to " & newName)
            DeleteFile newName
            objFSO.MoveFile oldName, newName
            objLogFile.WriteLine( oldName & "File renamed/moved successfully " & newName)
      Else
            objLogFile.WriteLine( oldName & " File does not exist.")
      End If     
End Function
 
 
'Rename Folder
Function RenameFolder(oldName, newName)
      If(objFSO.FolderExists(oldName)) Then
            If(objFSO.FolderExists(newName)) Then
                  objFSO.DeleteFolder newName, True
            End If
            objFSO.MoveFolder oldName, newName
      End If     
End Function
 
'Delete File
Function DeleteFile(filePath)
      If objFSO.FileExists(filePath) Then
            objFSO.DeleteFile filePath, True
            objLogFile.WriteLine("File : " + filePath + " deleted successfully")
      End If     
End Function
 
'Calling an Excel Macro
Function CallExcelMacro(filePath, macroName)
      Dim objExcel
      Dim objWorkbook
      Set objExcel = CreateObject("Excel.Application")
      objExcel.Visible = False
      If objFSO.FileExists(filePath) Then      
            objExcel.EnableEvents = False
            set objWorkbook = objExcel.Workbooks.Open (filePath)
            objExcel.EnableEvents = True
            objLogFile.WriteLine("Calling Macro :: " & macroName)
            objExcel.Run "'" & objFSO.GetFileName(filePath) & "'!" & macroName
            objWorkbook.Close True
      Else
            objLogFile.WriteLine( filePath & " File does not exist.")
      End If
      objExcel.Quit
      Set objWorkbook = Nothing
      Set objExcel = Nothing
End Function
 
 
'Registering .NET Components
Function RegisterComponents(assemblyPath, assemblyName)
     
      Dim winDir
      Dim param,program
      Dim assemblyFullPath
      assemblyFullPath = assemblyPath + "\"+ assemblyName
     
      winDir = objFSO.GetSpecialFolder(0)
      program = winDir + "\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "   
     
      If objFSO.FileExists(program) Then
            objLogFile.WriteLine( "Registering... " + assemblyName)
            ' Register/UnRegiter Filename
            param = " /unregister " + chr(34) + assemblyFullPath + chr(34)
            WsShell.Run program + param , 0, True
            param = " /tlb " + chr(34) + assemblyFullPath + chr(34) + " /codebase"
            WsShell.Run program + param , 0, True
            objLogFile.WriteLine( "Successfully Registered... " + assemblyName)
      Else
            objLogFile.WriteLine( "Failed to register assembly, as this machine does not have .NET Framework 2.0 runtime installed!")
      End If     
     
End Function
'Unregistering .NET Components
Function UnRegisterComponents(assemblyPath, assemblyName)  
      Dim winDir
      Dim param,program
      Dim assemblyFullPath
      assemblyFullPath = assemblyPath + "\"+ assemblyName
      winDir = objFSO.GetSpecialFolder(0)
      program = winDir + "\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "               
     
      If objFSO.FileExists(program) Then
            objLogFile.WriteLine( "UnRegistering... " + assemblyName)
            ' Register/UnRegiter Filename
            param = " /unregister " + chr(34) + assemblyFullPath + chr(34)                     
           
            WsShell.Run program + param , 0 , True
           
            objLogFile.WriteLine( "Successfully UnRegistered... " + assemblyName)
      Else
            objLogFile.WriteLine( "Failed to unregister assembly, as this machine does not have .NET Framework 2.0 runtime installed!")
      End If     
End Function
 
'Copy Folder
Function CopyFolderToDestinationFolder(strSourcePath, strDestinationPath, strFolderToCopy)
    Dim strTempSource
      Dim strTempDestination
 
    strTempSource = strSourcePath & strFolderToCopy
      strTempDestination = strDestinationPath & strFolderToCopy
    
      If Not (objFSO.FolderExists(strTempDestination))Then
            CreateFolder(strTempDestination)
      End If
     
      If objFSO.FolderExists(strTempSource) Then     
            objLogFile.WriteLine( "Copy " & strFolderToCopy & " Folder : Start")
            If objFSO.FolderExists(strTempDestination) Then
                  objFSO.DeleteFolder strTempDestination, True
            End If
            objFSO.CopyFolder strTempSource, strTempDestination
            objLogFile.WriteLine( "Copy " & strFolderToCopy & " Folder : End")
      Else
     objLogFile.WriteLine( strTempSource & "Folder does not exist.")
      End If
End Function
 
'Copy File
Function CopyFileToDestinationFolder(strSourcePath, strDestinationPath, strFileName)
 
      If objFSO.FileExists(strSourcePath & strFileName) Then
            objFSO.CopyFile strSourcePath & strFileName, strDestinationPath, True
            objLogFile.WriteLine( "File : " & strSourcePath & strFileName & " copied successfully to " & strDestinationFolder & strFileName)
      Else
            objLogFile.WriteLine( strDestinationFolder & strFileName & " does not exist.")
      End If
End Function
 
'Clearing Read only attribute of a file
Function ClearReadOnlyAttribute(filePath)
      Dim file
      If objFSO.FileExists(filePath) Then
            Set file = objFSO.GetFile(filePath)
            If file.Attributes Then
            file.Attributes = 0
            objLogFile.WriteLine("File : " + filePath + " attributes cleared successfully!")
      End If
      Else
      objLogFile.WriteLine("File : " + filePath + " does not exists")
     
      End If
End Function
 
'Create Desktop Shortcut
Function CreateDesktopShortcut(fullFilePath, shortcutName)
' ----------------------------------------------------------'
 
Dim objDesktop, objLink
Dim strIconPath
 
' --------------------------------------------------
' Here are the variables that to change if you are making a 'real' script
 
'strIconPath = "%SystemRoot%\system32\SHELL32.dll,5"
 
objDesktop = WsShell.SpecialFolders("Desktop")
Set objLink = WsShell.CreateShortcut(objDesktop & "\" & shortcutName & ".lnk")
 
' ---------------------------------------------------
' Section which adds the shortcut's key properties
 
objLink.Description = shortcutName
'objLink.HotKey = "CTRL+SHIFT+X"
'objLink.IconLocation = strIconPath
objLink.TargetPath = fullFilePath
objLink.WindowStyle = 3
'objLink.WorkingDirectory = filePath
objLink.Save
 
' End of creating a desktop shortcut
End Function
' *****************************************************************************
Happy Coding

author: Ram Shankar Yadav | posted @ Thursday, May 22, 2008 12:02 PM | Feedback (1)

Aashirwaad...... the blessing!


......being born and bought up in metro like Delhi, where everyone's concerned with their own interest, and nobody is bothered about the other guy,....yes a society still exits there but merely to exchange gifts in diwali and drink in holi!

....waiting for my school bus at bus stop, with other kids and their parents, and uncle X comes with his kid, and my dad said...."beta uncle ko namaste karo!"(say hello to uncle), .....me being a curious creature always, thought why my dad always insists to say "Hello" to that uncle!.....as the things started passing by......I started greeting uncle and afterwards, get engaged with his son talking stuff like cartoon, movies and games.......while my dad and uncle get into their kind of talks....don't remember exactly what they used to coz I was least concerned about their stuff!

....few year down the line we went to our village, where my grandparents stay. I was always fascinated about the things in village like the water-well, the huts and mud houses, cows, buffalos  and their calves, and other nitty gitty things I've heard from my mother's long lasting/never ending village sagas! The village added an additional level of curiosity when, I was commanded by my grand-pa to touch the feet of a person, that person was my grand-pa's friend and a Brahmin, and the same question popped out of my curious mind,.....why?

....I tried to find out why we are forced to do that exercise, and at that point in time just got one answer that just because they are elders we should!! .....even though not with the excuses/reasons given to me.....I followed the pattern blindly.....as most of us do!

....In my collage days, I met two guys from Bihar, and we later became good friends, I used to go to their places for study or other reasons like, fixing up their computers!(....yep that was my part time job during my collage day...;). During the visits to their place I found out that these guys do lot's of feet touching  exercise in their normal course of life, whenever somebody comes to their house.....and the same old curios million dollar question!!! WHY!!!

.....this time I was a bit matured and tried to infer why? why is it necessary to say namaskaar to our guests/uncles/aunts? why it's necessary to touch our elder's feet? or specially on occasions like festivals or exams? and finally got the answer that ..... it's not merely a ritual but it's a way to show your affection towards them! It's a way of getting their blessings which will never come out directly in front of you! On the other way round, you show your respect towards that comes from inside.

....and after this enlightenment I was never shy of touching my elder's feet or saying "Namaskaar" to them....and that voice always comes from the depth of my heart!

Namaskaar :) 

author: Ram Shankar Yadav | posted @ Tuesday, February 26, 2008 12:44 AM | Feedback (2)

Santulan - Pashanshala - Mithari mining area visit


Me and my kiddes!!

....and suddenly everyone in the class stood up, they started enchanting poems in marathi, we felt honored and kept our eyes on those innocent faces, and tried to figure out what's the context of that poem!

Afterwards, the teacher told us that they narrated ten poems in a row, amazing, isn't it!!

Preeti possing with kids!

Yep, that was one of the scenes happened in our second visit to Santulan's  Mithari mining area visit! No wonder those kids are as smart as ours, the only difference is that they don't have the privileges like our kids! We spend thousands of rupees in our kids education, this fee........that fee..........this function..........that function...and other blah blah activities which add no relief to parents pocket, and little or no value to our kids learning! Apart from that our kids have the most important thing, and that's parental care, guidance and moral support from us, whereas, the kids of mining workers has none of them! Their parents work in mines for the whole day, get back in evening, women prepare food, while most men have drinks, have their dinner and sleep to get back to their work next day!

I don't think that none of them wants that their kid to work in the mines as they do, but because of their ignorance and financial weakness, they found themselves helpless! At the most a mining worker thinks is to make his kid, a Truck Driver, who can drive those trucks full of stones, used in construction of hoses and buildings!

In the name of education they don't have a single penny to spend on their's kids future! and schools are distant dreams in these areas. As most of the mining sites are out of town and there are hardly any civilization nearby!

As they say, "... everything comes with a cost!", the cost of development is paid by the lives of those people who work in mines, construction and other hazardous industries.

....but why I'm describing all this? What's the point here?

....the only point of the above storytelling is that when you see the reality like that, you feel fortunate enough that, you get so much that might be a dream for someone, and even after that we never stop crying foul!!

I'm not a preacher but yes I do feel that people like us who are able, can create a platform for the under-privileged in our society! People like us can help/support/facilitate things for the needy people, who work much harder then us and get much lesser than us! Their work is as important as ours, and above all, they waste no time in those meeting rooms!

.....same day one of the teacher at Santulan's Pashanshala at Mithari told us that everyday they walk eight kilometers from a nearby village to teach these kids and work 9AM to 5 PM, six days a week!! Hats off to their spirits, of teaching these kids by bearing so much of pain!

....though we were spell bound again this time by these scenes and thought, but the only difference I felt this time is a inner happiness that "Yes, I'm doing something for them!", and we really felt proud of it!

Next visit will come with more such experiences! whatever it is but I'm enjoying the wave of transformation within!

Yep, I clicked a few pics of the kids there, and they posed innocently saying ...."meri bhi........meri bhi!"

author: Ram Shankar Yadav | posted @ Wednesday, February 20, 2008 7:27 PM | Feedback (0)

Dawn of a new life.....and transformations!


I'm writing this post after a while, ...yep...lately I was thinking that the most useful thing I've contributed through this blog is some good technical stuff!.........apart from that everything else was crap!! Though it sounds a bit negative, but it was(you guys already knew this!!).

So after some introspection I've came to a conclusion in my life is that........lets do something meaningful, let's write something that creates a impact, that shows the intellect, that brings out the juice of my experience with life.... and here we are........with a post that is the end of my crappy blog posts and dawn of new life!

So what I'm up to till this point in time, hmmmm......... I'm a software engineer(yep I do write code! and love to!!), I've do give time to my hobbies .....strumming my guitar, and clicking pics with my room-mate's camera!.....got my dream bike..."ThunderBird".....and handful of friends....whom I can bug every time!......but hey that's not it ......I always felt that there's something missing.......

........did I've got everything that I always wanted to ......yep....almost......nope.....not really!

Yes few things in life are not always straight forward, and last statement was an exact fit for that! So what I'm trying to convey is not that ...... after walking few years in corporate life I've become institutionalized but now I know that I can't be!!

So after some deep introspection I've thought that I'll do whatever I love to, with the same passion and devotion which started fainting during the institutionalization process......the mad rat race is not meant for me, that doesn't means that I'm not going to compete but yes, the goal and the focus would be different this time!

What is the best thing I've done till this point in time in my life? .......the answer comes directly from my heart..... nothing!

.....so what the hell am I going to do?.....one word......giveback!!

We are so much engaged in cosmos in and around us that we never felt that there are people who don't have even the basic amenities of like sanitation, education and good health!.....there are communities who don't have even access to clean drinking water!....there are kids who don't have an access to basic level of education! ......and many more....as the list can be endless!!! ..... and even if we do ......we do the same thing which comes directly from my heart .......yep you are right again....Noting - is the correct answer!

We sit in our air conditioned cubical's, wear the branded stuff, carry the latest mobile gadgets, never miss those weekend movie shows and ........last but not the least....never forget to crib on things like our boss, work, administration and on our lives! ....but what's the point of these things here?

......it has when you think about the people who are directly or indirectly building this country,.......people who work in hazardous industries like mining, construction etc., did you ever thought what happens to the kids of brick maker or a laborer, who works for twelve hours, to feed his family for a day, what happens to his education? How that kid is going to get out of his father's profession?

Go out to any of the construction/mining site near your place, you'll get the same pictures in your mind which I've this point in time! I don't know but I'm not able to forget those innocent faces, those cheeky smiles and those needy hands.......!

.......and yes, that's what I call the beginning of transformation, from a software engineer to a human being!.....and I've realized it today!

.......guys I'm not against any gadgets, trendy-ness or watching movies, but just try to emphasize that we do spent a lot of time on us(family & friends) but,.....just try to take out some time for others, whom you never even taught of or even if you did, never taken a step out of your living room to do something!

......as they say......
"the best time is now!"

I've heard this voice from my soul, and have joined an non-government organization called SANTULAN, which works for quarry workers, fighting for their rights, education for their kids and health and sanitation issues.

..........so far today was one of the best days of my life! I'm feeling proud that I'm pursuing what I always wanted to(coming out of my living room)!

author: Ram Shankar Yadav | posted @ Sunday, February 10, 2008 1:53 AM | Feedback (1)

My 2+6th B


It was my 26th , but arithmetically, it was my 8th and I enjoyed it like a 8 year kid!

My BDay Cake! Me & My Cake! My ThunderBirde!...the man & the machine! my BDay Cubical! my whiteboard!
I got gifts like...

- Bow and Arrow(Dhanush Baan)
- Drawing Book
- Crayons
- Spiderman wala folder
- Sipper
- Micky Mouse Pen Stand
- Happy BDay Pencil
- lot's of stickers
- floor puzzle,
- Hair Bands and, last but not the least!
- ThunderBird (gifted by myself!)

This was one of the best day of my life, when my friends returned back my childhood and I got my macho bike "ThunderBird"!

Though this was my first BDay with out my family, but I've got whole new world with family of families, and I'm a proud member of it! I've got a new dimension of life, and I've became a better person in course!

I'm evolving and enjoying the course of evolution!!

Thanks a ton guys!
U people rock :)

Happy BDay to me :)

author: Ram Shankar Yadav | posted @ Sunday, January 13, 2008 7:34 AM | Feedback (0)

When I kicked!


He he .......here goes my first video on youtube!

I don't know how it all happened, but in the end..........I enjoyed it(after consoling that guy ;)

Dhan dhan Goal!

I'm lovin' it!

author: Ram Shankar Yadav | posted @ Thursday, January 10, 2008 3:24 AM | Feedback (0)

The making of Taare Zameen Par Clay Animation


Stop motion animation veteran, Dhimant Vyas and Aamir Khan Productions have generously shared photos of the making of the Clay Animation sequences from Taare Zameen Par.

clip_image018

Enjoy :)

author: Ram Shankar Yadav | posted @ Wednesday, January 09, 2008 11:38 PM | Feedback (10)

When a dead terrorist speaks!


A friend of mine shared this video an I'm sharing it with you guys, indeed it damm hilarious!

 

Enjoy!

I'll ........kiilll u ;)

author: Ram Shankar Yadav | posted @ Monday, January 07, 2008 10:55 PM | Feedback (0)

9's Clock!


A clock that has only 9's in it.
Having 9s does not make it special.... U can design a clock having only 9 with 9/9 (=1), (9+9)/9(=2), (9+9+9)/9(=3) and so on...

9clock

What makes it really amazing is the fact that... it has only 3 9s in each digit representation. ..

author: Ram Shankar Yadav | posted @ Friday, January 04, 2008 9:12 PM | Feedback (2)

Free eBooks from Microsoft on LINQ, ASP.NET AJAX and Silverlight! - grab it now!!!


Introducing Microsoft LINQ
by Paolo Pialorsi and Marco Russo
Introducing Microsoft ASP.NET AJAX
by Dino Esposito
Introducing Microsoft Silverlight 1.0
by Laurence Moroney

http://csna01.libredigital.com/

Happy Learning

 

author: Ram Shankar Yadav | posted @ Friday, January 04, 2008 12:21 PM | Feedback (7)

Taare Zameen Par


26122007477

Last week we(Mobsters + others) went for the movie "Taare Zammen Par". Being a Aamir Khan movie, first week is ought to be house-full, so we decided to go on a week day(after office obviously!).

For few it was an effortless thing, except they need to nod for the show timings, for others like me, Kirti and Rohit it was more of micro management stuff! Starting from show timings to booking of tickets!

Pune has got few multiplexes in comparison to Delhi NCR, where you can easily book tickets online, there's no as such facility of online ticket booking and phone booking! We tried E-Square but to book tickets there we need to go through Ticket Points; these ticket points can book tickets of various theaters! but, we need to go to these ticket points to book and take ticket point receipts; these receipts are to be shown at respective theater and get ticket for the booked show!

We tried to call the ticket point but nobody picked the phone, after several attempts somebody picked up the phone and we queried for 7:45pm show @ E-Square, but unfortunately we didn't go the tickets, I entered into argument with the ticket guy(just because I joked "what type of Ticket point are you guys?"), finally I admitted my mistake and we tried another alternative i.e; Adlabs Chincwad! 7:45pm show!! but hurry up, we need to go to the nearest ticket point to get the tickets booked!!

26122007459 26122007460 26122007463

Me and Rohit left office to pick the tickets and others should reach Adlabs Chinchwad directly!!

Finally, we got the tickets, now rush to Adlabs, so we(me, Rohit P, Kirti Khare and Rohit S) proceeded towards our final destination!!

7pm on dot and we are here! First impression of the Adlabs Chinchwad, and it's vicinity is good! just like another Gurgaon Mall, stood in the midst of a upcoming city! We called others and finally bus wala gang arrived!

261220074712612200747526122007476

Eating time.......let's have something before the show starts!.. so we approached Mc Dees! Everyone ordered their meals and hey ........it's Bejoy....seen with a unkown face!!(must be dating ;), stutup! she's his wife! he he!!

26122007480 26122007479 26122007483

And finally we are through with our meals, of course Bejoy introduced her with the Gang ;)

Next thing in agenda, the movie so we approached the entry gate! I put my drink(coke) in the stuff counter as I was not able to finish it and didn't wanted to waste it!

Hey....that's Aishwary's poster.......let's have a pic!........Kirti joined me and we got this:

26122007489

"....it's not allowed Sir!......." a voice came from behind, we smiled and said an innocent "Sorry!", but we have already got the pic ;)

Finally, we in the movie hall and I don't know what happened next, as I was fully involved in the movie! It's an awesome movie about the childhood which anyone can relate the phases of life and peer pressures we have to go through to archive something! It's a story about a child who is not able to read and write but is talented in other terms, painting is one of them! He faces lot's of pressure from family and friends, finally lands up into a boarding school, where the situation becomes worst! The child goes into trauma of being departed from family!

Finally a guy comes in and that's Ram Shankar Nikumbh!! hey ............everyone "Ram Shankar"......ya I know his first and middle name are that of mine ;)

The movie is an emotional roller-coaster and one of the best movies I've ever seen!!

Few of us wept, cried and found our eyes wet, even after movie!!

Songs are good as well, as lyrics were quite soulful, written by Prasoon Joshi!

I personally liked two songs : "Maa" and "Kholo Kholo"!!

And yups..............the movie is over guys!

All of us re-assembled again and clicked as per our promise ;)

26122007490 26122007492

....and that's it!

Everyone left!........ I grouped up with Kirti and Mr & Mrs Jekkin! called Tarang(my roomie) to pick me up from Aundh! We(me and Kirti) got down at Parihar Chowk(outside Kirti's house), after a while Kirti left and I waited for Tarang and finally the dude arrived and I reached home @ 11:45 pm!

It was a hectic day ...........but I enjoyed it!!

Taare Zameen Par photos : http://ramshankaryadav.myphotoalbum.com/view_album.php?set_albumName=album10

author: Ram Shankar Yadav | posted @ Sunday, December 30, 2007 9:43 PM | Feedback (6)

Visual Studio 2008 and .NET Framework 3.5 Training Kit - Downloadable!!


Hey Guys! Just found this useful stuff and sharing it!

What it is?

The Visual Studio 2008 and .NET Framework 3.5 Training Kit includes presentations, hands-on labs, and demos. This content is designed to help you learn how to utilize the Visual Studio 2008 features and a variety of framework technologies including: LINQ, C# 3.0, Visual Basic 9, WCF, WF, WPF, ASP.NET AJAX, VSTO, CardSpace, SilverLight, Mobile and Application Lifecycle Management.

Where it is?

http://www.microsoft.com/downloads/details.aspx?FamilyID=8BDAA836-0BBA-4393-94DB-6C3C4A0C98A1&displaylang=en

Happy Learning!

author: Ram Shankar Yadav | posted @ Monday, December 24, 2007 1:59 PM | Feedback (1)

MSBuild Links!


Last week I was occupied by two things: Year End Party and MSBuild. Former was rocking and later was interesting! I’ve got few links and would like to share it with you guys.
 
MSBuild Links:
 
Integrating MSBuild with CruiseControl.NET : http://www.dougrohm.com/cs/pages/56.aspx
I hope that you’ll find it useful!
 
If you have more links just add a comment to this post!
 
Happy Building

author: Ram Shankar Yadav | posted @ Monday, December 17, 2007 6:50 PM | Feedback (1)

Visual Studio Debugging Tricks


Hey Guys!

I've got something to share which will help us in our "bugging" life…………

Here it goes:

Visual Studio 2005: Cool Debugging Tricks
 
http://www.eggheadcafe.com/tutorials/aspnet/1e7daccd-ed00-4a35-a2ed-92fb0ad72bec/visual-studio-2005-cool.aspx

Happy Debugging!

author: Ram Shankar Yadav | posted @ Wednesday, December 05, 2007 11:06 AM | Feedback (1)

Internet @ home


After a week long waiting finally, we(me & my roomies) have got Internet connection through Reliance Broadnet. We have got 999 Planwith 300 Kbps speed, unlimited download limits @ Rs. 999. I think there's a value for money proposition is there, and my first impression with the speed is good as well :)

Now I'll get more time to discover new things on net, download more movies and songs, and more blogging indeed!!

Happy Surfing :)

author: Ram Shankar Yadav | posted @ Sunday, December 02, 2007 11:53 AM | Feedback (0)